自定义菜单样式

    最近要做个透明效果的菜单,自己摸索了下没做出来。通过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);
这下行了,效果出来了,上图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值