`
zhy20045923
  • 浏览: 152803 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【转】修改menu样式-背景等

阅读更多
package lab.sodino.menutest;
import android.content.Context;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
/**
 * @author Sodino E-mail:sodinoopen@hotmail.com
 * @version Time:2011-1-26 下午04:42:04
 */
public class MenuAct extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		MenuInflater inflater = new MenuInflater(getApplicationContext());
		inflater.inflate(R.menu.menu, menu);
		setMenuBackground();
		return true;
	}
	public boolean onOptionsItemSelected(MenuItem item) {
		String info = "";
		switch (item.getItemId()) {
		case R.id.menu_add:
			info = "Add";
			break;
		case R.id.menu_delete:
			info = "Delete";
			break;
		case R.id.menu_home:
			info = "Home";
			break;
		case R.id.menu_help:
			info = "Help";
			break;
		default:
			info = "NULL";
			break;
		}
		Toast toast = Toast.makeText(this, info, Toast.LENGTH_SHORT);
		toast.show();
		return super.onOptionsItemSelected(item);
	}
	// 关键代码为重写Layout.Factory.onCreateView()方法自定义布局
	protected void setMenuBackground() {
		MenuAct.this.getLayoutInflater().setFactory(new android.view.LayoutInflater.Factory() {
			/**
			 * name - Tag name to be inflated.<br/>
			 * context - The context the view is being created in.<br/>
			 * attrs - Inflation attributes as specified in XML file.<br/>
			 */
			public View onCreateView(String name, Context context, AttributeSet attrs) {
				// 指定自定义inflate的对象
				if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
					try {
						LayoutInflater f = getLayoutInflater();
						final View view = f.createView(name, null, attrs);
						new Handler().post(new Runnable() {
							public void run() {
								// 设置背景图片
								view.setBackgroundResource(R.drawable.menu_background);
							}
						});
						return view;
					} catch (InflateException e) {
						e.printStackTrace();
					} catch (ClassNotFoundException e) {
						e.printStackTrace();
					}
				}
				return null;
			}
		});
	}
}
分享到:
评论

相关推荐

    element-ui tooltip修改背景颜色和箭头颜色的实现

    本文介绍了element-ui tooltip修改背景颜色和箭头颜色的实现,分享给大家,具体如下: 分享 placement=left popper-class=draw_share_atooltip&gt; &lt;div class=iconfont&gt;&lt;/div&gt; //箭头颜色 .el-tooltip__...

    《CSS标准网页布局开发指南》附赠光盘

    本光盘主要为书中的源程序,关于这些源程序中相关样式的具体含义及作用, 请参看书中的相应讲解部分。 -----------------------------光盘程序代码说明-------------------------------- 源文件\01 presentation....

    AutoPlay_Menu_Builder6.0.1328注册版

     背景音乐选择菜单的背景音乐,支持 MP3/MP2/MP1/OGG/WAV/MID/RMI/XM/IT/MOD/S3M/MTM 等十数种音乐格式。背景音乐将嵌入到数据文件 autorun.apm 中。  循环控制:循环播放背景音乐或只播放一次。  自动播放:菜单...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--aidl之结合反射获取应用缓存大小等空间占用 |--aidl调用系统service未公开的方法挂电话 |--aidl调用系统未公开的方法代码示例2 |--android dp和px之间转换 |--android INSTALL_PARSE_FAILED_MANIFEST_MALFORMED |...

    vant 自定义 van-dropdown-item的用法

    主要介绍了vant 自定义 van-dropdown-item的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    CSS样式风格定义

    }/* 单元格的CSS定义:对应CSS中的“TD”,这里为总的表格定义,为一般表格的的单元格风格设置,可定义内容为背景、字体颜色、样式等 */TD{FONT-FAMILY:宋体;FONT-SIZE: 9pt;line-height: 150%; }/* 文本框的CSS定义:...

    Android 自定义菜单

    但是,如果要在2.2以上的版本修改菜单的样式,例如修改背景颜色,图片等,使用这些方法是没有任何作用的。因此自己写了一个自定义的菜单控件,可以自由定义菜单的样式,使得菜单的样式更加丰富。

    MFC 自定义菜单栏背景颜色,位置,宽度,高度,选中高亮

    MFC 自定义菜单栏背景颜色,位置,宽度,高度,选中高亮以及颜色设置,菜单栏加载,菜单栏位置显示设置等等。

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -动态生成菜单实例(other\menu_dynamic_run.aspx和other\menu_dynamic2_run.aspx)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动...

    ZYCHCMS企业网站管理系统商业版V2012.1212

    5、新增背景判断,背景为空时则显示默认背景,有背景时显示上传背景! ------2012.08.15--更新说明-------------- 1、解决下载频道、相册频道、案例频道因没有数据而产生的错位,错版问题 2、后台新增CSS在线编辑器...

    pluto_menu_bar:颤振的菜单栏

    更改默认样式:更改背景,字体和边框。 演示版 安装 屏幕截图 用法 import 'package:flutter/material.dart' ; import 'package:pluto_menu_bar/pluto_menu_bar.dart' ; void main () { runApp ( MyApp ()); } ...

    AutoPlay_Menu_Builder5.5.0.1328注册版

     背景音乐选择菜单的背景音乐,支持 MP3/MP2/MP1/OGG/WAV/MID/RMI/XM/IT/MOD/S3M/MTM 等十数种音乐格式。背景音乐将嵌入到数据文件 autorun.apm 中。  循环控制:循环播放背景音乐或只播放一次。  自动播放:菜单...

    点创DOidea网上书店 v3.0动网整合

    网页背景图片的修改,打开叠层样式文件images/css.css定义背景图片路径 支持最低最低分辨率800×600IE5.0后台fsoxml编译 sql版本需要安装sql2000服务器端 --------------------------------------------------------...

    Android各种常用的功能测试

    异步加载图片:解决了图片的异步加载以及OOM...YouKu的Menu样式 一些运行环境监察的工具类 有米广告的集成测试 以上的代码中可能还有些其他的问题,以后会逐步修改 如果代码阅读有任何问题,请加入QQ群:57472287讨论

    ExtAspNet_v2.3.2_dll

    -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。 -增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和...

    html 版简历,深蓝背景,左右结构

    文字部分要自己修改,CSS模板最好不要变动. 基本信息 学业信息 社交关系 求职信息 个人特点 使用了jquery .有缓动效果,点击左侧菜单,右侧的页面 会滑动.其功能在目录下的menu.js 文件里, 不过,就算是样式,脚本...

    C++开发基于Qt的音乐播放器的设计与实现项目源码+项目使用说明(毕业设计).zip

    【资源说明】 C++开发基于Qt的音乐播放器的设计与实现项目源码+项目...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

Global site tag (gtag.js) - Google Analytics