OPTION Menu菜单

Menu菜单在android系统控件中真的很具有特色 点击以后会悬浮出一个菜单在次点击菜单则会消失,今天我只是简单的介绍一下系统的Menu菜单, 其实Menu菜单可以做出非常好看的效果,比如半透明 自定义按钮图片等等,后面我会详细的介绍menu菜单。
 

 

  
  
  1. public class MenuActivity extends Activity {  
  2.  
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.     setContentView(R.layout.menuview);  
  6.     super.onCreate(savedInstanceState);  
  7.     }  
  8.  
  9.     @Override  
  10.     public boolean onCreateOptionsMenu(Menu menu) {  
  11.     menu.add(0, 0, Menu.NONE, "菜单1").setIcon(R.drawable.icon);  
  12.     menu.add(0, 1, Menu.NONE, "菜单2").setIcon(R.drawable.icon);  
  13.     menu.add(0, 2, Menu.NONE, "菜单3").setIcon(R.drawable.icon);  
  14.     menu.add(0, 3, Menu.NONE, "菜单4").setIcon(R.drawable.icon);  
  15.     menu.add(0, 4, Menu.NONE, "菜单5").setIcon(R.drawable.icon);  
  16.     menu.add(0, 5, Menu.NONE, "菜单6").setIcon(R.drawable.icon);  
  17.     return super.onCreateOptionsMenu(menu);  
  18.     }  
  19.  
  20.     @Override  
  21.     public boolean onOptionsItemSelected(MenuItem item) {  
  22. if(item.isChecked())  item.setChecked(false); else { item.setChecked(true); }
  23.      Dialog(item.getItemId());  
  24.      return super.onOptionsItemSelected(item);  
  25.     }  
  26.  
  27.     private void Dialog(int message) {  
  28.     new AlertDialog.Builder(this).setMessage(  
  29.         "您单击第【" + message + "】项Menu菜单项.").show();  
  30.     }  
  
  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent"> 
  5.     <TextView android:layout_width="fill_parent" 
  6.               android:layout_height="wrap_content"   
  7.               android:textColor="#000000" 
  8.               android:textSize="18dip" 
  9.               android:background="#00FF00" 
  10.               android:text="Menu菜单测试"   
  11.               android:gravity="center_vertical|center_horizontal" 
  12.               /> 
  13. </LinearLayout> 

一个菜单组使用一个整数定义(在xml的一个资源id)。一个菜单项可以在它加入菜单时被加入菜单组。使用接受groupID的add()方法来完成这一点。

  你可以使用setGroupVisible()来显示和隐藏整个菜单组;使用setGroupEnabled()来使菜单组可用和不可用;使用setGroupCheckable()来使菜单组可以或者不可选择。

  Checkable menu items 可选取菜单

  任何菜单项可以被用作选项开关。可以使用单选框和复选框来完成,如下图。


  注意:图标菜单中的菜单项不能显示复选框或者单选框。如果你希望把这些图标菜单设为可选择的,你必须自己使用颜色或者图标变化等方式来保证它们在选定和不选定状态下的可区分性。

  要使一个菜单项变为可选择的,使用setCheckable()方法:

  menu.add(0, VIBRATE_SETTING_ID, 0, "Vibrate")

  .setCheckable(true);

  这将显示一个复选框。当这个菜单项被选择时,onOptionsItemSelected()被调用。你可以使用isChecked()和setChecked()来查看和设置它的选择状态。这里是onOptionsItemSelected()的内容:

  switch (item.getItemId()) {

  case VIBRATE_SETTING_ID:

  if (item.isChecked()) item.setChecked(false);

  else item.setChecked(true);

  return true;

  ...

  }

  要创建一组单选框,将同样的组id分配给每个菜单项,并调用setGroupCheckable()。这种情况下,你不需要为每个菜单项调用setCheckable(),因为菜单组整个被设置为可选择。下面为在子菜单中设置两个互斥选项的方法:

  SubMenu subMenu = menu.addSubMenu("Color");

  subMenu.add(COLOR_MENU_GROUP, COLOR_RED_ID, 0, "Red");

  subMenu.add(COLOR_MENU_GROUP, COLOR_BLUE_ID, 0, "Blue");

  subMenu.setGroupCheckable(COLOR_MENU_GROUP, true, true);

  setGroupCheckable()方法中, 第一个参数为我们需要设置的组id. 第二个参数为我们是否需要该组的菜单项为可选择. 第三个参数为各个选项之间是否互斥. 当设为互斥时, 选择一个选项将导致另外的选项被取消.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值