Android:Listview背景设置为透明

     在android开发中,listview的默认背景颜色是黑色的,所以在UI设计中,肯定会对它进行美化处理,尤其是在游戏开发中。最近在做用户聊天框的时候遇到一个这样的问题,我把显示用户聊天记录的listview背景设置成白色的,看起来没有什么问题,但是当我滚动滚动条的时候,有内容的listitem全部变成黑色的了,效果很不好。

     google了一下,原因是:默认的ListView的背景是透明的,而ListView的背景是固定不变的,所以当我滚动滚动条的时候,会实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才那样的效果。

     解决的办法:如果你只要换背景颜色,就只需将android:cacheColorHint属性设置成你想要的颜色就行了。如果需更换背景图片,则需使用android:background="@drawable/bg"属性,并把android:cacheColorHint设置成(#00000000)透明的就ok了。

 

或者:

直接上代码了,目标:设置listview背景 

Java代码 
  1. lv.setBackgroundResource(R.drawable.listback);  

这样设置可以,但是拖动列表就会发现列表又变成背景黑色的了说明这只设置了列表的背景,但是列表自身的颜色没有改变 
这就要设置列表自身为透明: 
Java代码 
  1. lv.setCacheColorHint(0);  

参数为int型,如果在xml中设置这个属性则可以使用一般的16进制颜色表示方法,即#00ff00ff之类 
这样就实现了列表的透明处理 
api很丰富,要多多实践啊 

Java代码 
  1. lv.setAlwaysDrawnWithCacheEnabled(true);  

这个用于设置拖动之后是否再次显示背景,也就是说设为true后,拖动listview,就不会显示背景图片了(默认显示黑色),除非离开activity(tabactivity之间切换不算) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值