本文来自:安卓航班网

如何自定义Android菜单背景呢? 默认的情况下Android系统的菜单是白色的,下面的例子可以通过自定义的xml布局实现个性化的menupublic 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系统,这句可能根据各个厂商编译的固件来灵活处理。

原文地址:http://www.apkway.com/forum.php?mod=viewthread&tid=2508&extra=page%3D1

转载于:https://www.cnblogs.com/yyq-quan/archive/2011/08/04/2127723.html

自定义Android菜单背景相关推荐

  1. android 自定义menu背景,Android编程实现自定义系统菜单背景的方法

    本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...

  2. 自定义android控件EditText 自定义边框 背景

    自定义EditText边框背景: 首先重新定义一个style.在values文件夹下新建一个xml文件: <?xml version="1.0" encoding=" ...

  3. Android项目开发实战—自定义左右菜单

    Android实现自定义左右菜单 功能描述: 在左中右三个区域分别承载三个不同的view,把它全部添加进来,而我们实现左右菜单,就是来控制当前显示的是哪一部分:如果显示中间菜单,就把中间菜单呈现在用户 ...

  4. Android自定义menu菜单布局

    一:先写一个自定义的菜单布局 menu_gallery.xml: <?xml version="1.0" encoding="utf-8"?> &l ...

  5. Android自定义按钮状态背景

    如果你觉得Android自带的按钮默认.按下时样式太low,可以尝试自定义按钮状态背景: 首先把我自定义的按钮状态背景图贴上来: 默认时: 按下后: 有没有很小清新呐~~~ 自定义按钮状态步骤如下: ...

  6. android menu自定义,Android提高之自定义Menu(TabMenu)实现方法

    一般使用过UCWEB-Android版的人都应该对其特殊的menu有一定的印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android ...

  7. android+模拟器皮肤,自定义android模拟器皮肤和键盘映射

    我想为Android模拟器创建自己的皮肤.我有照片购买了一些皮肤图像. 有一些额外的按钮,我需要映射,以便点击它时应该生成一个特定的事件. 在我的个性化皮肤文件夹的布局文件看起来是这样的:自定义and ...

  8. 自定义Android带图片的按钮

    自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...

  9. 制作个性化gurb菜单背景图片

    由于Linux是开源系统,并且一切皆文件,所以如果对Linux grub启动菜单背景感觉太过单调,我们完全可以通过修改配置文件自定义为我们喜欢的背景图片 grub背景图片要求:     图片格式:xp ...

最新文章

  1. 1113 Integer Set Partition (25 分)【难度: 一般 / 知识点: 思维 贪心】
  2. java企业号回调模式,微信公众平台企业号开发—开启回调模式
  3. 5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出
  4. 工信部:三大运营商移动电话用户总数达15.92亿户 同比增长0.2%
  5. Kubernetes之StatefulSet
  6. 跟着李开复去硅谷,你有疑惑我帮问 | 互动一则
  7. Hyperledger Fabric chaincode 开发(疑难解答)
  8. Qt中的对话框(模态,非模态,关于,问题,文件)
  9. 枚举学习文摘 — 框架设计(第2版) CLR Via C#
  10. Linux系统开机提速我有招!
  11. CSND默认markdown样式
  12. 《算法笔记》的codeup打不开怎么办
  13. 高并发分布式场景下的应用---分布式锁
  14. 图片从服务器在网页显示,spring从服务器磁盘读取图片,然后显示于前端页面上...
  15. 唐朝一体机屏幕显示变红
  16. 【转载】AE表达式中英文对照
  17. 开关柜绝缘状态检测与故障诊断
  18. 用Kubernetes部署超级账本Fabric的区块链即服务
  19. 广西大学计算机技术导师,唐天兵,广西大学 计算机与电子信息学院
  20. 计算机毕业设计(深度学习,机器学习)

热门文章

  1. ajax交互json数据
  2. SQLSERVER监控复制并使用数据库邮件功能发告警邮件
  3. 基于HT for Web 3D呈现Box2DJS物理引擎
  4. Redis与Memcached简要比较
  5. 如果类是个泛型类的话dllImport 代码不能编译
  6. 浅谈Delphi过程与函数02 - 零基础入门学习Delphi21
  7. Cookie编程入门篇
  8. 安装HCL遇到的问题
  9. Java小工具:TimingTools
  10. [leetcode]Search in Rotated Sorted Array @ Python