androidmenu樣式
㈠ android中怎麼讓menu菜單顯示在屏幕左上角
用慣了Android的人在剛拿到iPhone的時候,總是會習慣性的用手指從狀態欄往下拖一下,這都是給Notification鬧的。
不過Notification也確實是1個不錯的提示工具,不幹擾正常的操作,事後還可以再翻看詳細的內容,點擊後還可以進入相關的畫面查看更具體的內容。
今天我就以代碼為主的形式來介紹Notification的使用,包括基本用法,自定義的View,以及更多的控制方法。
另一種Android中常用到的提示方法Toast的用法請參見《教程:在Android中使用Toast進行提示》
我們先看下Notification的幾個主要組成部分:
Icon:不解釋
Ticker Text:Notification剛出來的時候,在狀態欄上滾動的字幕,如果很長,會自動分割滾動
Content Title:Notification展開後的標題
Content Text:Notification展開後的內容
Notification的一般用法
取得NotificationManager
private NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
創建Notification並且顯示
//Notification的滾動提示
String tickerText = "My notification, It's a long text! Hello World desiyo?";
//Notification的圖標,一般不要用彩色的
int icon = R.drawable.icon_02241_3;
//contentTitle和contentText都是標準的Notification View的內容
//Notification的內容標題,拖下來後看到的標題
String contentTitle="My notification";
//Notification的內容
String contentText="Hello World!";
//Notification的Intent,即點擊後轉向的Activity
Intent notificationIntent = new Intent(this, this.getClass());
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
//創建Notifcation
Notification notification = new Notification(icon, tickerText, System.currentTimeMillis());
//設定Notification出現時的聲音,一般不建議自定義
notification.defaults |= Notification.DEFAULT_SOUND;
//設定如何振動
notification.defaults |= Notification.DEFAULT_VIBRATE;
//指定Flag,Notification.FLAG_AUTO_CANCEL意指點擊這個Notification後,立刻取消自身
//這符合一般的Notification的運作規范
notification.flags|=Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);
//顯示這個notification
mNotificationManager.notify(HELLO_ID, notification);
這是最基本的應用,可以說除了找個合適的圖標以外,其它都很簡單。
使用自定義View的Notification
同Toast一樣,我們也可以自已指定1個View來作為Notification展開後的顯示內容,比如說在Android Market中下載的時候,Notification中會顯示當前下載的進度,那麼我們也來模擬1個這樣的效果吧。
首先給出View的定義文件:notification_view_sample.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dp"
>
<ImageView android:id="@+id/notificationImage"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@android:drawable/stat_sys_download"
/>
<TextView android:id="@+id/notificationTitle"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/notificationImage"
android:layout_alignParentRight="true"
android:paddingLeft="6dp"
android:textColor="#FF000000"
/>
<TextView android:id="@+id/notificationPercent"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/notificationImage"
android:paddingTop="2dp"
android:textColor="#FF000000"
/>
<ProgressBar android:id="@+id/notificationProgress"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/notificationTitle"
android:layout_alignLeft="@id/notificationTitle"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/notificationPercent"
android:paddingLeft="6dp"
android:paddingRight="3dp"
android:paddingTop="2dp"
style="?android:attr/progressBarStyleHorizontal"
/>
</RelativeLayout>
RelativeLayout的使用,可以參考:《教程:Android各種Layout特性和使用匯總(一)》
㈡ 如何讓android menu橫向顯示
不可以,menu是需要觸發了menu這個按鍵才會顯示出來。
菜單是用戶界面中最常見的元素之一,使用非常頻繁,在Android中,菜單被分為如下三種,選項菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu),以下說的是創建OptionsMenu
一、概述
public boolean onCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu。
public boolean onOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。
public void onOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。
public boolean onPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。
public boolean onMenuOpened(int featureId, Menu menu):單打開後發生的動作。
二、默認樣式
默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More里,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。
1.main.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextViewandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="請點擊Menu鍵顯示選項菜單"
android:id="@+id/TextView02"/>
</LinearLayout>
2。重載onCreateOptionsMenu(Menu menu)方法
重載onCreateOptionsMenu(Menu menu)方法,並在此方法中添加菜單項,最後返回true,如果false,菜單則不會顯示。
(Menumenu)
@Override
(Menumenu){
/*
*
*add()方法的四個參數,依次是:
*
*1、組別,如果不分組的話就寫Menu.NONE,
*
*2、Id,這個很重要,Android根據這個Id來確定不同的菜單
*
*3、順序,那個菜單現在在前面由這個參數的大小決定
*
*4、文本,菜單的顯示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"刪除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以
//android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"幫助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"詳細").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"發送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
3。為菜單項注冊事件
使用onOptionsItemSelected(MenuItem item)方法為菜單項注冊事件
(MenuItemitem)
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"刪除菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"幫助菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"詳細菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"發送菜單被點擊了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
4.完整代碼
packagecom.android.menu;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.widget.Toast;
{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
(Menumenu){
/*
*
*add()方法的四個參數,依次是:
*
*1、組別,如果不分組的話就寫Menu.NONE,
*
*2、Id,這個很重要,Android根據這個Id來確定不同的菜單
*
*3、順序,那個菜單現在在前面由這個參數的大小決定
*
*4、文本,菜單的顯示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"刪除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以
//android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"幫助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"詳細").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"發送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"刪除菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"幫助菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"詳細菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"發送菜單被點擊了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
@Override
publicvoidonOptionsMenuClosed(Menumenu){
Toast.makeText(this,"選項菜單關閉了",Toast.LENGTH_LONG).show();
}
@Override
(Menumenu){
Toast.makeText(this,
"選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單",
Toast.LENGTH_LONG).show();
//如果返回false,此方法就把用戶點擊menu的動作給消費了,onCreateOptionsMenu方法將不會被調用
returntrue;
}
}
5.運行效果
㈢ Android如何自定義menu的背景
01.public class MenuEx extends Activity { 02. 03. private static final String TAG = "android123"; 04. @Override 05. public void onCreate(Bundle savedInstanceState) { 06. super.onCreate(savedInstanceState); 07. setContentView(R.layout.main); 08. } 09. @Override 10. public boolean onCreateOptionsMenu(Menu menu) { 11. super.onCreateOptionsMenu(menu); 12. MenuInflater inflater = new MenuInflater(getApplicationContext()); 13. inflater.inflate(R.menu.options_menu, menu); 14. setMenuBackground(); 15. return true; 16. } 01.public class MenuEx extends Activity { 02. 03. private static final String TAG = "android123"; 04. @Override 05. public void onCreate(Bundle savedInstanceState) { 06. super.onCreate(savedInstanceState); 07. setContentView(R.layout.main); 08. } 09. @Override 10. public boolean onCreateOptionsMenu(Menu menu) { 11. super.onCreateOptionsMenu(menu); 12. MenuInflater inflater = new MenuInflater(getApplicationContext()); 13. inflater.inflate(R.menu.options_menu, menu); 14. setMenuBackground(); 15. return true; 16. } 上面的例子可以輕松的替換當前Activity的Menu背景顏色,這里Android開發網再次提醒大家上面加粗的包名不能隨意改動,如果非原生的Android系統,這句可能根據各個廠商編譯的固件來靈活處理。
㈣ 安卓開發 menu排列問題,怎麼設置成橫排,填滿底部
你這是自定義樣式的,,你跟改為默認樣式就可以。
例子:
㈤ android應用開發中,如何讓自製的設置菜單列表和系統設置列表的樣式保持一致,當主題更改時也能跟著變化
自己定義一個布局(和系統的菜單一樣) 然後攔截menu事件 彈出就可以了 自定義menu
步驟:
1) 覆寫onCreateOptionsMenu(),返回值改為false
public boolean onCreateOptionsMenu(
Menu menu) {
return false;
}
2) 創建 */
View contentView = LayoutInflater.from(this).inflate(R.layout.menu,
null);
view = contentView.findViewById(R.id.view);
view.setOnClickListener(this);
/**
* 創建彈出的會話框 contentView 是會話框顯示的View 寬 ,高
*/
optionMenu = new PopupWindow(contentView, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
3) 顯示菜單
mOptionsMenu.showAtLocation(
findViewById(R.id.main),
Gravity.BOTTOM, 0, 0);
㈥ Android如何自定義Menu
新建自定義Menu————>TabMenu.java如下:
package com.ncw;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.LinearLayout.LayoutParams;
public class TabMenu extends PopupWindow {
private GridView gridView;
private LinearLayout mLayout;
public TabMenu(Context context, OnItemClickListener bodyClick, int colorBgTabMenu) {
super(context);
mLayout = new LinearLayout(context);
mLayout.setOrientation(LinearLayout.VERTICAL);
gridView = new GridView(context);
gridView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));// 選中的時候為透明色
gridView.setNumColumns(4);
gridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
gridView.setVerticalSpacing(0);
gridView.setHorizontalSpacing(0);
gridView.setPadding(0, 0, 0, 0);
gridView.setGravity(Gravity.CENTER);
gridView.setOnItemClickListener(bodyClick);
mLayout.addView(gridView);
// 設置默認項
this.setContentView(mLayout);
this.setWidth(LayoutParams.FILL_PARENT);
this.setHeight(LayoutParams.WRAP_CONTENT);
this.setBackgroundDrawable(new ColorDrawable(colorBgTabMenu));// 設置TabMenu菜單背景
this.setFocusable(true);// menu菜單獲得焦點 如果沒有獲得焦點menu菜單中的控制項事件無法響應
}
public void SetBodySelect(int index, int colorSelBody) {
int count = gridView.getChildCount();
for (int i = 0; i < count; i++) {
if (i != index)
((LinearLayout) gridView.getChildAt(i))
.setBackgroundColor(Color.TRANSPARENT);
}
((LinearLayout) gridView.getChildAt(index))
.setBackgroundColor(colorSelBody);
}
public void SetBodyAdapter(MenuBodyAdapter bodyAdapter) {
gridView.setAdapter(bodyAdapter);
}
/**
* 自定義Adapter,TabMenu的每個分頁的主體
*
*/
static public class MenuBodyAdapter extends BaseAdapter {
private Context mContext;
private int[] resID;
/**
* 設置TabMenu的分頁主體
*
* @param context
* 調用方的上下文
* @param resID
*/
public MenuBodyAdapter(Context context, int[] resID) {
this.mContext = context;
this.resID = resID;
}
@Override
public int getCount() {
return resID.length;
}
public Object getItem(int position) {
return makeMenyBody(position);
}
public long getItemId(int position) {
return position;
}
private LinearLayout makeMenyBody(int position) {
LinearLayout result = new LinearLayout(this.mContext);
result.setOrientation(LinearLayout.VERTICAL);
result.setGravity(Gravity.CENTER_HORIZONTAL
| Gravity.CENTER_VERTICAL);
result.setPadding(0, 0, 0, 0);
ImageView img = new ImageView(this.mContext);
img.setBackgroundResource(resID[position]);
result.addView(img, new LinearLayout.LayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)));
return result;
}
public View getView(int position, View convertView, ViewGroup parent) {
return makeMenyBody(position);
}
}
}
?
1
使用自定義Menu————>testTabMenu.java
package com.ncw;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class testTabMenu extends Activity {
TabMenu.MenuBodyAdapter bodyAdapter = new TabMenu.MenuBodyAdapter(this,
new int[] { R.drawable.menu_01, R.drawable.menu_02,
R.drawable.menu_03, R.drawable.menu_04 });
TabMenu tabMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabMenu = new TabMenu(this, new BodyClickEvent(), R.drawable.menu_bg);// 出現與消失的動畫
tabMenu.update();
tabMenu.SetBodyAdapter(bodyAdapter);
}
class BodyClickEvent implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
tabMenu.SetBodySelect(arg2, Color.GRAY);
Log.i("Log", " BodyClickEvent implements OnItemClickListener "
+ arg2);
}
}
@Override
/**
* 創建MENU
*/
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("menu");// 必須創建一項
return super.onCreateOptionsMenu(menu);
}
@Override
/**
* 攔截MENU
*/
public boolean onMenuOpened(int featureId, Menu menu) {
if (tabMenu != null) {
if (tabMenu.isShowing())
tabMenu.dismiss();
else {
tabMenu.showAtLocation(findViewById(R.id.LinearLayout01),
Gravity.BOTTOM, 0, 0);
}
}
return false;// 返回為true 則顯示系統menu
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="自定義Menu————張亞龍" >
</TextView>
</LinearLayout>
運行效果圖:
㈦ android menu item的字體樣式和背景顏色怎麼自定義
android旋鈕背景顏色 android按鈕背景顏色 默認情況下,Button使用android系統提供的默認背景。因此在不同平台上或者設備上,button顯示的風格也不相同。android支持修改button默認的顯示風格,可通過Drawable狀態列表替換默認的背景
㈧ 怎麼讓android系統中隱藏的menu按鈕顯示出來
菜單是用戶界面中最常見的元素之一,使用非常頻繁,在Android中,菜單被分為如下三種,選項菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu),以下說的是創建OptionsMenu 一、概述 public boolean onCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu。 public boolean onOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。 public void onOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。 public boolean onPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。 public boolean onMenuOpened(int featureId, Menu menu):單打開後發生的動作。 二、默認樣式 默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More里,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。 1/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="請點擊 Menu鍵顯示選項菜單" android:id="@+id/TextView02" /> </LinearLayout> 2。重載onCreateOptionsMenu(Menu menu)方法 重載onCreateOptionsMenu(Menu menu)方法,並在此方法中添加菜單項,最後返回true,如果false,菜單則不會顯示。 public boolean onCreateOptionsMenu(Menu menu) @Override public boolean onCreateOptionsMenu(Menu menu) { /* * * add()方法的四個參數,依次是: * * 1、組別,如果不分組的話就寫Menu.NONE, * * 2、Id,這個很重要,Android根據這個Id來確定不同的菜單 * * 3、順序,那個菜單現在在前面由這個參數的大小決定 * * 4、文本,菜單的顯示文本 */ menu.add(Menu.NONE, Menu.FIRST + 1, 5, "刪除").setIcon( android.R.drawable.ic_menu_delete); // setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以 // android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的 menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon( android.R.drawable.ic_menu_edit); menu.add(Menu.NONE, Menu.FIRST + 3, 6, "幫助").setIcon( android.R.drawable.ic_menu_help); menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon( android.R.drawable.ic_menu_add); menu.add(Menu.NONE, Menu.FIRST + 5, 4, "詳細").setIcon( android.R.drawable.ic_menu_info_details); menu.add(Menu.NONE, Menu.FIRST + 6, 3, "發送").setIcon( android.R.drawable.ic_menu_send); return true; } 3。為菜單項注冊事件 使用onOptionsItemSelected(MenuItem item)方法為菜單項注冊事件 public boolean onOptionsItemSelected(MenuItem item) @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST + 1: Toast.makeText(this, "刪除菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 2: Toast.makeText(this, "保存菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 3: Toast.makeText(this, "幫助菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 4: Toast.makeText(this, "添加菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 5: Toast.makeText(this, "詳細菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 6: Toast.makeText(this, "發送菜單被點擊了", Toast.LENGTH_LONG).show(); break; } return false; } 4.完整代碼 package com.android.menu; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class DefaultMenu extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { /* * * add()方法的四個參數,依次是: * * 1、組別,如果不分組的話就寫Menu.NONE, * * 2、Id,這個很重要,Android根據這個Id來確定不同的菜單 * * 3、順序,那個菜單現在在前面由這個參數的大小決定 * * 4、文本,菜單的顯示文本 */ menu.add(Menu.NONE, Menu.FIRST + 1, 5, "刪除").setIcon( android.R.drawable.ic_menu_delete); // setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以 // android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的 menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon( android.R.drawable.ic_menu_edit); menu.add(Menu.NONE, Menu.FIRST + 3, 6, "幫助").setIcon( android.R.drawable.ic_menu_help); menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon( android.R.drawable.ic_menu_add); menu.add(Menu.NONE, Menu.FIRST + 5, 4, "詳細").setIcon( android.R.drawable.ic_menu_info_details); menu.add(Menu.NONE, Menu.FIRST + 6, 3, "發送").setIcon( android.R.drawable.ic_menu_send); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST + 1: Toast.makeText(this, "刪除菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 2: Toast.makeText(this, "保存菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 3: Toast.makeText(this, "幫助菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 4: Toast.makeText(this, "添加菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 5: Toast.makeText(this, "詳細菜單被點擊了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 6: Toast.makeText(this, "發送菜單被點擊了", Toast.LENGTH_LONG).show(); break; } return false; } @Override public void onOptionsMenuClosed(Menu menu) { Toast.makeText(this, "選項菜單關閉了", Toast.LENGTH_LONG).show(); } @Override public boolean onPrepareOptionsMenu(Menu menu) { Toast.makeText(this, "選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單", Toast.LENGTH_LONG).show(); // 如果返回false,此方法就把用戶點擊menu的動作給消費了,onCreateOptionsMenu方法將不會被調用 return true; } } 5.運行效果
㈨ 安卓編程怎樣自定義menu中的字體大小
一、先到AndroidManifest.xml看看當前的theme是什麼:
比如我這里的是AppTheme
[html] view plain
<application
......
android:theme="@style/MyAppTheme" >
二、然後在資源文件的res/values/styles.xml中找到 你的主題:
[html] view plain
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
三、然後在此添加上一個item,name=android:actionMenuTextAppearance,然後引用你自己定義的文字樣式,不管是大小還是顏色都可以自己定義
[html] view plain
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionMenuTextAppearance">@style/MyMenuTextStyle</item>
</style>
<style name="MyMenuTextStyle">
<item name="android:textColor">@android:color/red</item>
<item name="android:textSize">16sp</item>
</style>
㈩ android中menu怎麼寫
菜單資源文件必須放在res/menu目錄中。菜單資源文件必須使用<menu>標簽作為根節點。除了<menu>標簽外,還有另外兩個標簽用於設置菜單項和分組,這兩個標簽是<item>和<group>。
<menu>標簽沒有任何屬性,但可以嵌套在<item>標簽中,表示子菜單的形式。不過<item>標簽中不能再嵌入<item>標簽。
1.<item>標簽的屬性含義如下:
Id:表示菜單項的資源ID
menuCategory:同種菜單項的種類。該屬性可取4個值:container、system、secondary和alternative。通過menuCategroy屬性可以控制菜單項的位置。例如將屬性設為system,表示該菜單項是系統菜單,應放在其他種類菜單項的後面。
orderInCategor:同種類菜單的排列順序。該屬性需要設置一個整數值。例如menuCategory屬性值都為system的3個菜單項(item1、item2和item3)。將這3個菜單項的orderInCategory屬性值設為3、2、1,那麼item3會顯示在最前面,而item1會顯示在最後面。
title:菜單項標題(菜單項顯示的文本)
titleCondensed:菜單項的短標題。當菜單項標題太長時會顯示該屬性值
icon:菜單項圖標資源ID
alphabeticShortcut:菜單項的字母快捷鍵
numericShortcut:菜單項的數字快捷鍵
checkable:表示菜單項是否帶復選框。該屬性可設計為true或false
checked:如果菜單項帶復選框(checkable屬性為true),該屬性表示復選框默認狀態是否被選中。可設置的值為true或false
visible:菜單項默認狀態是否可視
enable:菜單項默認狀態是否被激活