需求:点击条目时字体和颜色变化,抬起时恢复。
一 先进行字体颜色变化设置
1 先准备字体变化的drawable文件 selector_text_color,要注意的是 属性是color,不是drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorWhite" android:state_pressed="true"/>
<item android:color="@color/simple_blue"/>
</selector>
2 在子条目中使用
<TextView
android:id="@+id/device_address"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="@drawable/selector_background"
android:gravity="center"
android:textColor="@drawable/selector_text_color"
android:textSize="15dp" />
二 背景变化的设置
1 跟之前一样,首先准备点击背景变化的drawable文件 selector_background 。
因为背景变化需要涉及圆角和颜色的组合,所以还会用到自己绘制的drawable,当然如果只有颜色的变化可以直接写,不需要drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/item_result1" android:state_pressed="true"/>
<item android:drawable="@drawable/item_result"/>
</selector>
2 两种背景样式,分别是result和result1
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="@color/simple_blue"
android:width="1dp"/>
<corners android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="@color/simple_blue"
android:width="1dp"/>
<solid android:color="@color/simple_blue"/>
<corners android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
</shape>
3 在子条目中使用1中的文件 可以看到字体和背景同时进行了设置
<TextView
android:id="@+id/device_address"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="@drawable/selector_background"
android:gravity="center"
android:textColor="@drawable/selector_text_color"
android:textSize="15dp" />