当前位置: 移动技术网 > IT编程>移动开发>Android > android 自定义Android菜单背景的代码

android 自定义Android菜单背景的代码

2019年07月24日  | 移动技术网IT编程  | 我要评论

在山的那边 教案,第一福利导航niub365,3d max9

复制代码 代码如下:

public class menuex extends activity {
private static final string tag = "android123";
@override public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
}
@override public boolean oncreateoptionsmenu(menu menu) {
super.oncreateoptionsmenu(menu);
menuinflater inflater = new menuinflater(getapplicationcontext());
inflater.inflate(r.menu.options_menu, menu);
setmenubackground();
return true;
}

关键代码就是重写layout类的工厂方法oncreateview,这里对比绘制的view来替换系统中的
复制代码 代码如下:

protected void setmenubackground(){
log.d(tag, "开始设置菜单的的背景");
getlayoutinflater().setfactory( new factory() {
@override public view oncreateview ( string name, context context, attributeset attrs ) {
if ( name.equalsignorecase( "com.android.internal.view.menu.iconmenuitemview" ) ) {
//上面这句android123提醒大家不能有改动,目前来看对于原生android目前这个packagename还没有变化
try {
layoutinflater f = getlayoutinflater();
final view view = f.createview( name, null, attrs ); //尝试创建我们自己布局
new handler().post( new runnable() {
public void run () {
view.setbackgroundresource( r.drawable.cwj"_bg); //设置背景为我们自定义的图片,替换cwj_bg文件即可 } } );
return view;
} catch (
inflateexception e ) {}
catch (
classnotfoundexception e ) {}
}
return null;
} }); }}

上面的例子可以轻松的替换当前activity的menu背景颜色,这里android开发网再次提醒大家上面加粗的包名不能随意改动,如果非原生的android系统,这句可能根据各个厂商编译的固件来灵活处理。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网