想设置listview中每行在点击、选中等不同状态下有不同的背景颜色,或者背景图片。 
这可以用Android的Selector来实现。它可以定义组件在不同状态下的显示方式。

新建一个xml文件list_bg_selector.xml在drawable目录下

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_window_focused="false" android:drawable="@drawable/没有焦点时图片背景" />
  4. <item android:state_focused="true" android:state_pressed="true"
  5. android:drawable="@drawable/非触摸模式下获得焦点并单击时的背景图片" /> <!--双条件-->
  6. <item android:state_focused="false" android:state_pressed="true"
  7. android:drawable="@drawable/触摸模式下单击时的背景图片" />
  8. <item android:state_selected="true" android:drawable="@drawable/选中时的图片背景" />
  9. <item android:state_focused="true" android:drawable="@drawable/获得焦点时的图片背景" />
  10. <item android:drawable="@drawable/silver" /> <!--default color 当对应状态下没有定义时使用此default -->
  11. </selector>
 <?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@drawable/没有焦点时图片背景" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/非触摸模式下获得焦点并单击时的背景图片" /> <!--双条件-->
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/触摸模式下单击时的背景图片" />
<item android:state_selected="true" android:drawable="@drawable/选中时的图片背景" />
<item android:state_focused="true" android:drawable="@drawable/获得焦点时的图片背景" />
<item android:drawable="@drawable/silver" /> <!--default color 当对应状态下没有定义时使用此default -->
</selector>

定义item时具体可以选择的条件有:

  1. android:state_pressed=["true" | "false"]  //被点击
  2. android:state_focused=["true" | "false"]  //获得焦点
  3. android:state_selected=["true" | "false"] //被选中
  4. android:state_checkable=["true" | "false"] //可以被check时
  5. android:state_checked=["true" | "false"]  //被check时,例如用于checkbox
  6. android:state_enabled=["true" | "false"]  //可用是,即能接收click/touch事件
  7. android:state_window_focused=["true" | "false"]  //所在的窗口获得焦点
 android:state_pressed=["true" | "false"]  //被点击
android:state_focused=["true" | "false"] //获得焦点
android:state_selected=["true" | "false"] //被选中
android:state_checkable=["true" | "false"] //可以被check时
android:state_checked=["true" | "false"] //被check时,例如用于checkbox
android:state_enabled=["true" | "false"] //可用是,即能接收click/touch事件
android:state_window_focused=["true" | "false"] //所在的窗口获得焦点

然后再listview的layout定义里加上就ok了

  1. android:background="@drawable/list_bg_selector"
android:background="@drawable/list_bg_selector"

Android中的ListView点击时的背景颜色设置的更多相关文章

  1. Android 文字链接 文字点击时的背景颜色

    案例:实现“忘记密码?”这个链接,并且在按下的时候改变颜色. 方法一:这个可以用TextView实现: 主界面main.xml: <?xml version="1.0" en ...

  2. 1016-06-首页20-封装工具条---UITableView控件距离顶部的间距问题----cell选中时的背景颜色设置

    一.设置UITableView里面的顶部 cell 距离顶部的间距的三种方式: 方法 1. 直接设置: self.tableView.contentInset = UIEdgeInsetsMake(H ...

  3. WPF中ListBox /ListView如何改变选中条背景颜色

    适用ListBox /ListView WPF中LISTVIEW如何改变选中条背景颜色 https://www.cnblogs.com/sjqq/p/7828119.html

  4. H5 -- 取消a标签在点击时的背景颜色

    原文链接:点我 1.取消a标签在移动端点击时的蓝色 a { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-user-sele ...

  5. 取消a标签在移动端点击时的背景颜色

    一.取消a标签在移动端点击时的蓝色 -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-user-select: none; -m ...

  6. 取消a标签或者onclick在移动端点击时的背景颜色

    一.取消a标签在移动端点击时的蓝色 -webkit-tap-highlight-color: rgba(, , , ); -webkit-user-select: none; -moz-user-fo ...

  7. css取消a标签在移动端点击时的背景颜色

    一.取消a标签在移动端点击时的蓝色 -webkit-tap-highlight-color: rgba(255, 255, 255, 0);-webkit-user-select: none;-moz ...

  8. 【转】整理一下Android中的ListView

    原文网址:http://sunbofu.blog.51cto.com/6431507/1280441 Android中的listview目测是一个使用频率很高的组件,所以今天来总结一下listview ...

  9. Android中的ListView属性使用总结

    Android中使用ListView控件比较常见,如果能知道常用的一些属性使用,肯定会少很多坑. 1.ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景 ...

随机推荐

  1. Delphi7中的Char和XE中的Char

    我用FillChar()函数时,发现两个版本中的Char不一样. 在delphi7中 procedure TForm2.Button1Click(Sender: TObject); var s: ar ...

  2. UltraEdit 回车符替换空格

    查找和替换    输入 ^r^n   替换为:(空格)

  3. android studio中使用recyclerview小白篇(二)

    前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图 1.在我们的activity_main中把recyclerview填加 ...

  4. CPU 和 GPU 的区别

    作者:知乎用户链接:https://www.zhihu.com/question/19903344/answer/96081382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  5. 趣图:向客户介绍的产品VS实际开发的产品

      趣图:客户需求 vs 最终产品 趣图:你永远想不到用户怎么使用你的产品

  6. MVC,MVP 和 MVVM 的区别之处

    其实我一直以来,虽然做的是前端的工作,但是有一个疑问,就是什么是mvc模式,虽然大概知道,但是具体确实说不上来的的,今天,我就好好总结一下mvc ,mvp,mvvm模式的区别与相同. 1.MVC模式: ...

  7. 单机,伪分布式,完全分布式-----搭建Hadoop大数据平台

    Hadoop大数据——随着计算机技术的发展,互联网的普及,信息的积累已经到了一个非常庞大的地步,信息的增长也在不断的加快.信息更是爆炸性增长,收集,检索,统计这些信息越发困难,必须使用新的技术来解决这 ...

  8. 【bzoj3456】城市规划 dp+多项式求逆

    Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或 ...

  9. jquery常用事件——幕布

    jquery常用事件:https://mubu.com/doc/yIEfCgCxy0

  10. Struts、Hibernate和Spring的整合

    Spring整合Hibernate Spring以其开放性,能与大部分ORM框架良好的整合.这样Spring就能轻松地使用ORM. Spring提供了DAO支持,DA0组件是应用的持久层访问的重要组件 ...