作者微博: http://www.weibo.com/haric

在Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性android:background="@drawable/bg" ,不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果,如下图所示



这是为什么呢?
这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint 的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的

那怎么办呢?
如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint 为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint 指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。最后美化的效果如图:



转载请注明出处http://haric.iteye.com 谢谢

更多相关文章

  1. Android(安卓)怎么样使用shape
  2. Android仿小米商城底部导航栏(基于BottomNavigationBar)
  3. Android(安卓)透明度百分比转换
  4. 去掉listview的分割线和分割线的颜色,高度的设置
  5. 怎样在android中添加背景图片?
  6. Android自定义背景的设置方法
  7. Android通过xml给控件添加边框
  8. Android中View绘制各种状态的背景图片原理深入分析以及StateList
  9. Android使用GridView实现俄罗斯方块(附源码)(一)

随机推荐

  1. Android AlertDialog工具类 实现对话框回
  2. Android之调用js常见错误
  3. Attacking memory problems on Android
  4. How to enable Android ConfigFS gadgets
  5. Android 图片的缓存机制分析
  6. Android/OPhone中使用HttpUrlConnection
  7. Android中数据库的一些操作(增删改查)
  8. android位置服务
  9. Android 的网络编程(8)-文件上传功能
  10. AndEngine添加多个动画精灵的方法