自定义菜单样式

来源:互联网 发布:对大数据的理解和认识 编辑:程序博客网 时间:2024/06/07 19:58

    最近要做个透明效果的菜单,自己摸索了下没做出来。通过google大神找了很多文章,郁闷的很。我看到很多人抄别人的文章,google出来的都是一个样,有意思么。hao123写的一篇自定义菜单的文章,结果都去转,有的甚至连原文出处都没有直接抄过来,真受不了,不知道这些人抄别人的文章是图个啥。

     我不想粘大段的代码,给个链接菜单背景。我试了他这段代码,发现一个问题,不管是hao123还是转载抄袭的都没有解释。就是他这个设置背景的代码不能设置透明的效果。如果你设置背景为不透明的图片做背景,这个是可以的。但是如果要做一个有透明效果或者半透明的这个就不行。至于为什么不行,慢慢讲。

      看上面那个链接的代码,设置背景的关键代码就是第71行 

view.setBackgroundResource(R.drawable.menu_background); 

他这个是用了系统的菜单框架,inflater一个xml配置项来布局菜单项。但菜单的xml配置跟普通的inflater一个普通视图是有区别的。经过我试验,如果这里设置背景为透明,view.setBackgroundColor(color.transparent);出来的菜单还是有一个白色背景的。这是为什么?这就说明根view是白色背景而这个view不是根view,在他的外部还有一个parent,也许是一个layout。于是get他的parent再来试

((View(view.getParent())).setBackgroundColor(color.transparent);
结果还是有个白色背景,这说明还不是根view。于是

((View)(view.getParent().getParent())).setBackgroundColor(color.transparent);
这下行了,效果出来了,上图

原创粉丝点击