selector修改TextView点击后的颜色属性

selector想必大家都用过了,但是在修改字体的颜色的时候还是要细心。

我们在TextView中设置字体颜色一般使用 

Android:textColor="@color/red"

但是我们在使用selector动态修改字体颜色的时候要使用

android:textColor="@drawable/selector_color_order_main_color"


这个是修改TextView字体颜色的

selector_color_order_main_color.xml

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  
    <item android:state_pressed="true" android:color="@color/white"></item>  
    <item android:state_pressed="false" android:color="@color/main_color"></item>  
  
</selector


这个是修改TextView背景颜色的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_radius_order_main_color_down" android:state_pressed="true" android:color="@color/white"/>
    <item android:drawable="@drawable/shape_radius_order_main_color" android:state_pressed="false" android:color="@color/main_color"/>
</selector>
shape_radius_order_main_color.xml
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android" >  
  
    <solid android:color="@color/white" />  
  	<stroke android:color="@color/main_color" android:width="0.5dp"/>
    
    <corners  
        android:bottomLeftRadius="3dp"  
        android:bottomRightRadius="3dp"  
        android:topLeftRadius="3dp"  
        android:topRightRadius="3dp" />  
  	
</shape>


shape_radius_order_main_color_down.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="@color/main_color" />

    <stroke
        android:width="0.5dp"
        android:color="@color/color_f7f7f7" />

    <corners
        android:bottomLeftRadius="3dp"
        android:bottomRightRadius="3dp"
        android:topLeftRadius="3dp"
        android:topRightRadius="3dp" />

</shape>


这里要注意的是,如果要修改TextView点击效果的字体颜色属性要用

android:textColor="@drawable/selector_color_order_main_color"//drawable而不能用color属性


android:background是改变背景颜色的

android:textColor是改变字体颜色的,当然一般默认用color一种颜色