【android】listview改变选中行背景图片

目标:当item选中时,改变其背景图片。效果图如下:

bg

直接在listview的xml文件中使用listselector:

1
2
3
4
5
6
7
8
9
<ListView
    android:id="@+id/listTV"
    android:layout_width="349px"
    android:layout_height="fill_parent"
    android:layout_marginLeft="26px"
    android:layout_marginTop="20px"
    android:listSelector="@drawable/tvitembg"
    android:focusable="true">
</ListView>

然后另外定义,tvitembg.xml文件定义其背景图片:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- 没有焦点时的背景图片 -->
<!-- 
<item
    android:state_window_focused="false"/> 
-->
<!-- 非触摸模式下获得焦点并单击时的背景图片 --> 
<item
    android:state_focused="true"
    android:state_pressed="true"
    android:drawable= "@drawable/bg"/> 
<!-- 触摸模式下单击时的背景图片 -->
<!--
  <item
    android:state_focused="false"
    android:state_pressed="true"  
    android:drawable="@drawable/pic3" />
-->
<!--选中时的图片背景  --> 
<item
    android:state_selected="true"
    android:drawable="@drawable/bg"/>
<!--获得焦点时的图片背景  --> 
<item
    android:state_focused="true"
    android:drawable="@drawable/bg"/>
</selector>

这样就OK啦~~

原文地址:https://www.cnblogs.com/xgjblog/p/4228675.html