Android中的Button自定义点击效果之改变点击时按钮的颜色

在Android中定义按钮的点击效果可以通过自定义selector,通过设置两张不同的背景图片来改变点击时和未点击时的状态,但有时候仅仅只想改变点击时按钮的颜色,但是在selector中并不能直接定义颜色。下面代码实现一个点击按钮时仅仅改变按钮颜色。
1. 在drawable目录下面定义:button_press.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorBack" />

    <stroke
        android:width="0.4dp"
        android:color="@color/colorBack" />

    
  
shape>

button_nopress.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorBackPress" />


    <stroke
        android:width="0.4dp"
        android:color="@color/colorBackPress" />
    
    
shape>

2.在drawable目录下面定义change_color_btn:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_press" android:state_enabled="true"
        android:state_pressed="true"/>
    <item android:drawable="@drawable/button_nopress" android:state_enabled="true"
        android:state_pressed="false"/>
selector>

在定义的按钮中加上:background=”@drawable/change_color_btn”
上面中的第一步其实就是给按钮加个边框里面再填充上颜色,这样就解决了selector中不能直接定义颜色的问题。

你可能感兴趣的:(android,Android)