当前位置:首页 » 安卓系统 » androidmenu的属性

androidmenu的属性

发布时间: 2023-01-06 08:08:35

⑴ android menu属性

这是监听手机上的主菜单文件的,点击手机菜单键,会弹出一个菜单,1代表第一行命令,点击就是推出程序,点击第二个就是弹出软件的介绍。

⑵ android menu动态怎么增加功能

从menu按键开始,涉及以下3个方法:
1、onCreateOptionsMenu(Menu menu)
2、onPrepareOptionsMenu(Menu menu)
3、onOptionsItemSelected(MenuItem item)

方法名
触发时间

onCreateOptionsMenu
进入Launcher后第一次点MENU按钮时触发

onPrepareOptionsMenu
有两种情况:1、进入Launcher后第一次点MENU按钮触发onCreateOptionsMenu后调用;2、经过第一步,以后每次点MENU按钮时都会触发

onOptionsItemSelected
选择MENU里面的任意内容后触发

⑶ 怎样在Android Menu item中使用自定义View

1.自定义属性:attrs.xml

2.MenuItemView.java源码

package com.dandy.widget;

import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.StateListDrawable;
import android.graphics.drawable.shapes.RectShape;
import android.os.Build;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;

import com.lingyun.switchbutton.R;

/**
* 设置,菜单中的布局项
* 默认控件是纵向居中显示,所有paddingTop和paddingBottom在这没有作用
* Created by dandy on 2016/4/14.
*/
public class MenuItemView extends View{

private static final String TAG = "MenuItemView";

/**默认是按下状态的最小值**/
private static final long PRESSED_TIMEOUT = 10;

/**默认控件距离边界的大小**/
private static final int PADDING_DEFAULT = 18;

/**默认控件的高**/
private static final int HEIGHT_DEFAULT = 50;

/**文字绘制时默认大小**/
private static final int TEXTSZIE_DEFAULT = 14;

/**尾部箭头图标大小**/
private static final int ARROW_SIZE = 13;

/***SwitchButton默认宽*/
private static final int SWITCHBUTTON_WIDTH = 50;

/***SwitchButton默认高*/
private static final int SWITCHBUTTON_HEIGHT = 28;

/**头标**/
private Drawable headerDrawable;

/**头标宽**/
private int headerDrawableWidth;
/**头标高**/
private int headerDrawableHeight;

/**距离左边缘的距离**/
private int paddingLeft;

/**距离右边缘的距离**/
private int paddingRight;

/**绘制头标时,画布在Y轴的绘制偏移量**/
private float headerDrawableStartDrawY;

/**文字与图片间的距离**/
private int drawablePadding = -1;

/**头部文字提示**/
private String textHeader;

/**文字颜色**/
private int textHeaderColor = Color.parseColor("#5a5a5a");

/**文字大小**/
private int textSize = -1;

/**文字绘制时,画布在Y轴的绘制偏移量**/
private float textStartDrawY;

/**绘制文字的画笔**/
private Paint textPaint;

/** 尾部 > 图片**/
private Drawable arrowDrawable;
/**尾部 > 大小**/
private int arrowSize = -1;

/** > 绘制的X轴偏移量**/
private float arrowStartDrawX;

/** > 绘制的Y轴偏移量**/
private float arrowStartDrawY;

/**footerDrawable != null 时,绘制的时候是否按照原图片大小绘制**/
private boolean arrowWropToSelf = true;

/**尾部宽**/
private int arrowDrawableWidth;
/**尾部高**/
private int arrowDrawableHeight;

/**绘制arrow画笔**/
private Paint arrowPaint;

/**arrowPaint 颜色**/
private int arrowColor = Color.parseColor("#5a5a5a");

private DisplayMetrics dm;

/*以下是绘制SwitchButton所用到的参数*/

private Style style = Style.CUSTOM_ITEM;

/**默认宽**/
private int switchButtonWidth = -1;

/**默认高**/
private int switchButtonHeight = -1;

private static final long DELAYDURATION = 10;

/**开启颜色**/
private int onColor = Color.parseColor("#4ebb7f");
/**关闭颜色**/
private int offColor = Color.parseColor("#dadbda");
/**灰色带颜色**/
private int areaColor = Color.parseColor("#dadbda");
/**手柄颜色**/
private int handlerColor = Color.parseColor("#ffffff");
/**边框颜色**/
private int borderColor = offColor;
/**开关状态**/
private boolean toggleOn = false;
/**边框宽**/
private int borderWidth = 2;
/**纵轴中心**/
private float centerY;
/**按钮水平方向开始、结束的位置**/
private float startX,endX;
/**手柄x轴方向最小、最大值**/
private float handlerMinX,handlerMaxX;
/**手柄大小**/
private int handlerSize;
/**手柄在x轴的坐标位置**/
private float handlerX;
/**关闭时内部灰色带宽度**/
private float areaWidth;
/**是否使用动画效果**/
private boolean animate = true;
/**是否默认处于打开状态**/
private boolean defaultOn = true;
/**按钮半径**/
private float radius;

/**整个switchButton的区域**/
private RectF switchRectF = new RectF();

/**绘制switchButton的画笔**/
private Paint switchPaint;

private OnToggleChangedListener mListener;

private Handler mHandler = new Handler();

private double currentDelay;

private float downX = 0;

/**switchButton在X轴绘制的偏移量**/
private float switchButtonDrawStartX;

/**switchButton在Y轴绘制的偏移量**/
private float switchButtonDrawStartY;

/**分割线,默认在底部绘制**/
private Drawable dividerr;

/**分割线绘制的宽**/
private int dividerWidth = 2;

/**是否需要绘制分割线**/
private boolean dividerVisibilty = true;

/**触摸事件是否完成**/
private boolean touchDownEnd = false;

public MenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setup(attrs);
}
public MenuItemView(Context context, AttributeSet attrs) {
super(context, attrs);
setup(attrs);
}

/**
* 初始化控件,获取相关的控件属性
* @param attrs
*/
private void setup(AttributeSet attrs){

dm = Resources.getSystem().getDisplayMetrics();

TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.MenuItemView);
if(typedArray != null){
int count = typedArray.getIndexCount();
for(int i = 0;i < count;i++){
int attr = typedArray.getIndex(i);
switch (attr){
case R.styleable.MenuItemView_headerDrawable:
headerDrawable = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_drawPadding:
drawablePadding = typedArray.getDimensionPixelSize(attr,drawablePadding);
break;
case R.styleable.MenuItemView_textHeader:
textHeader = typedArray.getString(attr);
break;
case R.styleable.MenuItemView_textHeaderColor:
textHeaderColor = typedArray.getColor(attr, textHeaderColor);
break;
case R.styleable.MenuItemView_textSize:
textSize = typedArray.getDimensionPixelSize(attr, textSize);
break;
case R.styleable.MenuItemView_arrowDrawable:
arrowDrawable = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_arrowSize:
arrowSize = typedArray.getDimensionPixelSize(attr, arrowSize);
break;
case R.styleable.MenuItemView_arrowWropToSelf:
arrowWropToSelf = typedArray.getBoolean(attr, true);
break;
case R.styleable.MenuItemView_arrowColor:
arrowColor = typedArray.getColor(attr, arrowColor);
break;
case R.styleable.MenuItemView_onColor:
onColor = typedArray.getColor(attr, onColor);
break;
case R.styleable.MenuItemView_offColor:
borderColor = offColor = typedArray.getColor(attr,offColor);
break;
case R.styleable.MenuItemView_areaColor:
areaColor = typedArray.getColor(attr, areaColor);
break;
case R.styleable.MenuItemView_handlerColor:
handlerColor = typedArray.getColor(attr, handlerColor);
break;
case R.styleable.MenuItemView_bordeWidth:
borderWidth = typedArray.getColor(attr, borderWidth);
break;
case R.styleable.MenuItemView_animate:
animate = typedArray.getBoolean(attr, animate);
break;
case R.styleable.MenuItemView_defaultOn:
defaultOn = typedArray.getBoolean(attr, defaultOn);
break;
case R.styleable.MenuItemView_Style:
style = Style.getValue(typedArray.getInt(attr, Style.CUSTOM_ITEM.ordinal()));
break;
case R.styleable.MenuItemView_switchButtonWidth:
switchButtonWidth = typedArray.getDimensionPixelOffset(attr, switchButtonWidth);
break;
case R.styleable.MenuItemView_switchButtonHeight:
switchButtonHeight = typedArray.getDimensionPixelOffset(attr, switchButtonHeight);
break;
case R.styleable.MenuItemView_dividerr:
dividerr = typedArray.getDrawable(attr);
break;
case R.styleable.MenuItemView_dividerWidth:
dividerWidth = typedArray.getDimensionPixelOffset(attr,dividerWidth);
break;
case R.styleable.MenuItemView_dividerVisibilty:
dividerVisibilty = typedArray.getBoolean(attr,dividerVisibilty);
break;
}
}
typedArray.recycle();
}

⑷ 如何为自定义的toolbar设置menu

放两个panel 在窗体上,都设置属性Dock 为 top , menu 放在上面panel里,toolbar放在下面的panel
Android Menu的文字有两种设置方式:
在 menu.xml中设置。
在java代码onCreateOptionsMenu中设置。
以下为示例代码:
在menu.xml中指定title即可
<item android:id="@+id/menu"
android:title="文字"/>
重载onCreateOptionsMenu(Menu menu)方法,并调用API。
menu.add((int groupId, int itemId, int order, charsequence title) .setIcon(drawable ID)
add()方法的四个参数,依次是:
1、组别,如果不分组的话就写Menu.NONE。
2、Id,这个很重要,Android根据这个Id来确定不同的菜单 。
3、顺序,哪个菜单项在前面由这个参数的大小决定 。
4、文本,菜单项的显示文本。

⑸ 求教android的menu菜单项,谢谢了

/**
* Add a new item to the menu. This item displays the given title for its
* label.
*
* @param groupId The group identifier that this item should be part of.
* This can be used to define groups of items for batch state
* changes. Normally use {@link #NONE} if an item should not be in a
* group.
* @param itemId Unique item ID. Use {@link #NONE} if you do not need a
* unique ID.
* @param order The order for the item. Use {@link #NONE} if you do not care
* about the order. See {@link MenuItem#getOrder()}.
* @param title The text to display for the item.
* @return The newly added menu item.
*/
public MenuItem add(int groupId, int itemId, int order, CharSequence title);

第二参数是itemId,意思在某个菜单组的序号。

⑹ android中的menu的背景颜色如何设置请指教

.Factory,但是细节不是太清楚,请指点。 在strings.xml里配下info的颜色,如果是代码生成的可以用这个menu.add(0, 1, 0, "确定").setIcon(R.drawable.info);不知道这样是否符合你的要求drawable是图片的目录,strings是一些文本的属性,你说的能具体点吗? 问题补充:sunquanfeng 写道引用sunquanfeng 写道 在strings.xml里配下info的颜色,如果是代码生成的可以用这个menu.add(0, 1, 0, "确定").setIcon(R.drawable.info);不知道这样是否符合你的要求 android工程里不是有个strings.xml文件么,里面是配置资源的,你配一个 <drawable name="info">#0000ff</drawable>,我说的不是目录,你配好了就可以引用啊您说的方法不能解决问题。

⑺ android menu 有什么用

android 中的menu一般是指上下文菜单或者是选项菜单 其中上选项菜单是可以在布局中res下的menu中在xml布局中写好布局来的然后通过java代码中的onCreateOptionsMenu来加载选项菜单,android4.4高级版本后是自动把菜单加载到标题栏上的,而不是低版本的按下menu键才显是出来的,上下文菜单是是通过onCreateContextMenu这个方法来注册上下文菜单的 下面讲讲如何获取menu中的item 获取上下文菜单的item其实就是当单机选项菜单时会触发这个方法 public boolean onContextItemSelected(MenuItem mi){ //判断单击的是哪个菜单项,并针对性的作出响应。 switch (mi.getItemId()){ case FONT_RED: title.setTextColor(Color.RED); break; case FONT_GREEN: title.setTextColor(Color.GREEN); break; case FONT_BLUE: title.setTextColor(Color.BLUE); break; case MENU1: createdialog(); break; } return true; }获取选项菜单的item其实就是当单击选项菜单时会触发这个方法 public boolean onMenuItemSelected(int featureId, MenuItem item) { // 利用switch根据ItemId区分点击的是哪个菜单 以便正确响应用户操作 MenuItem temp= item; switch (item.getItemId()) { case R.id.rename: createdialog(); break; case R.id.red: title.setTextColor(Color.RED); break; case R.id.green: title.setTextColor(Color.GREEN); break; case R.id.blue: title.setTextColor(Color.BLUE); break; // case R.id.choose_color: // createpopupmenu(temp); // break; } return super.onMenuItemSelected(featureId, item); }

⑻ android的这些属性是什么意思啊求详解

这些都是OptionsMenu的属性

  1. ifRoom表示如果Actionbar上有空间,就显示这个menu;withText表示显示的时候如果空间足够,会显示menu的title。

  2. actionViewClass="android.widget.SearchView"表示这个菜单使用SearchView这个控件。

⑼ android menu问题

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_back);

return true;

}

⑽ 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.运行效果

热点内容
帆布压缩袋 发布:2025-05-17 13:26:27 浏览:457
c语言16进制表示方法 发布:2025-05-17 13:11:25 浏览:480
ftp单位 发布:2025-05-17 13:10:03 浏览:141
c语言编写n的阶乘 发布:2025-05-17 13:10:02 浏览:685
lockjava 发布:2025-05-17 13:02:08 浏览:311
只狼和看门狗哪个配置高 发布:2025-05-17 12:50:21 浏览:206
扁桃玩的服务器地址 发布:2025-05-17 12:18:25 浏览:511
u盘上传歌 发布:2025-05-17 12:14:51 浏览:615
入门c语言设计 发布:2025-05-17 12:08:31 浏览:42
c3算法 发布:2025-05-17 12:04:19 浏览:365