Android美工坊--listview更改选中时item背景色

默认情况下使用ListView背景色是黑色,选中item的高亮颜色是菊黄色,很多时候不得不自己定义背景色或者背景图

android:cacheColorHint="@android:color/transparent",意思为去黑色底色,比如ListView滚动时会刷新界面,默认颜色还是系统颜色,所以采用这种方式设置其为透明即可,这个属性在ListView中使用圆角图片来设置ListView时很有用

android:divider="@null"用于去掉listview的item之间的黑线

1、背景色

即在list_item_color_bg.xml中通过设置color来实现点击item时不同的颜色,但是如果使用color的话,listview无法使用android:listSelector属性,如果设置android:listSelector方式的话,点击一个item后整体的ListView全部都会变成一种颜色,这时必须采用在item中设置android:background的方式才可以。android:listSelector方式适用于图片的方式,即类似与(android:drawable="@drawable/img")

复制代码
<?xml version="1.0" encoding="utf-8"?><selector  xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="true" android:drawable="@color/green"></item>    <item android:drawable="@color/white"></item></selector>
复制代码

color.xml

复制代码
<?xml version="1.0" encoding="utf-8"?><resources>    <color name="white">#ffffff</color>    <color name="black">#000000</color>    <color name="green">#00ff00</color></resources>
复制代码

下面再看看布局文件

listview.xml,用color的方式,这里不能使用listSelector

复制代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <ListView         android:id="@+id/lv"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:fastScrollEnabled="true"        android:cacheColorHint="@android:color/transparent"        android:divider="@null"        /></LinearLayout>
复制代码

list_item_color.xml,通过color设置直接在item的布局中设置背景即可

复制代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="horizontal" android:background="@drawable/list_item_color_bg">     <ImageView        android:id="@+id/img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        />    <LinearLayout         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        >        <TextView            android:id="@+id/tv"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:textSize="20sp"        />        <TextView             android:id="@+id/info"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:textSize="14sp"            />    </LinearLayout></LinearLayout>
复制代码

效果图

Android美工坊--listview更改选中时item背景色_第1张图片

2、背景图

这种方式是在selector文件中采用图片来设置item的背景,无论是设置ListView的android:listSelector的方式还是设置item的android:background的方式都可以使用,不过最好还是使用android:background的方式,因为使用android:listSelector的方式时下面的selector文件中设置的默认时的图片

<itemandroid:drawable="@drawable/login_input"/>)不会显示,而改为background的方式则可以。有些奇怪,希望懂的能指点一下

复制代码
<?xml version="1.0" encoding="utf-8"?><selector  xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="true" android:drawable="@drawable/input_over"/>    <item android:drawable="@drawable/login_input"/></selector>
复制代码

listView此时设置如下,这里在item中不设置android:background

复制代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <ListView         android:id="@+id/lv"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:fastScrollEnabled="true"        android:cacheColorHint="@android:color/transparent"        android:listSelector="@drawable/list_item_drawable_bg"         /></LinearLayout>
复制代码

此时的效果图如下:背景图是.9.png图片,注意默认的白色.9.png图片login_input没有显示

如果使用android:background的方式,取消android:listSelector的方式,效果如下

分类: Android美工坊

更多相关文章

  1. Android从SD卡中加载图片或读取信息
  2. android > 获取图片 从 本地 /相机
  3. Android 创建与解析XML(二)—— Dom方式(源码)
  4. Android创建逐帧动画的方式
  5. Android实用代码片段(一)
  6. Android ListView异步加载网络图片
  7. Android使用HttpURLConnection显示网络图片
  8. fanfou(饭否) android客户端 代码学习1
  9. android短信发送器源代码

随机推荐

  1. Android(安卓)应用安全风险与防范
  2. Android与H5交互,以及WebView加载进度条
  3. Android(安卓)AIDL(Android(安卓)Interfa
  4. Android(安卓)应用没有桌面图标
  5. android Activity生命周期总结
  6. Google I/O Android(安卓)相关演讲视频汇
  7. Android(安卓)中关于Cursor类的介绍
  8. Android(安卓)Service生命周期及用法
  9. android动态加载已安装apk中的方法
  10. TextView: android中TextView实现单行跑马