1. 程式人生 > >自定義Drawable(文字按鈕點選效果設定)

自定義Drawable(文字按鈕點選效果設定)

一些在開發UI時經常需要用到的自定義Drawable的程式碼,整理起來,方便今後高效的開發。

1,單選按鈕、複選框
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/icon_checked" android:state_checked="true"></item>
<item android:drawable="@mipmap/icon_normal"
></item>
</selector>

2,View的點選效果
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/btn_shake_colour_down" android:state_selected="true" />
<item android:drawable="@mipmap/btn_shake_colour_down"
android:state_focused="true" />
<item android:drawable="@mipmap/btn_shake_colour_down" android:state_pressed="true" />
<item android:drawable="@mipmap/btn_shake_colour_nor" />
</selector>

3,Shape做背景
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
>
<solid android:color="#991C203A"/>
<stroke android:width="1dp" android:color="#AAFFFFFF"/>
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"/>
</shape>

4,Shape和Selector合成按鈕點選效果,注:<item>一定要在<item android:state_******="true">之後,否則設定無效果
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape>
<solid android:color="#11000000" />
<stroke android:width="1dp" android:color="#88FFFFFF" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid android:color="#11000000" />
<stroke android:width="1dp" android:color="#88FFFFFF" />
</shape>
</item>
<item>
<shape>
<solid android:color="#00000000" />
<stroke android:width="1dp" android:color="#AAFFFFFF" />
</shape>
</item>
</selector>

5,TextView文字點選時變色,將該檔案放到 /res/color 
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@color/common_font_check_white" />
<item android:state_focused="true" android:color="@color/common_font_check_white" />
<item android:state_pressed="true" android:color="@color/common_font_check_white" />
<item android:color="@color/white" />
</selector>