Create a xml named btn_single_selector.xml in drawable folder.
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_btn_back_normal" />
<item android:drawable="@drawable/ic_btn_back_normal" />
</selector>Create a ColorDrawable named image_color.xml in color folder.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#fac300" />
<item android:color="#00000000" />
</selector>Set a imageview to your layout xml file.
<ImageView
android:layout_width="@dimen/image_size"
android:layout_height="@dimen/image_size"
android:layout_margin="5dp"
android:tint="@color/image_color"
android:src="@drawable/btn_single_seletor"
android:clickable="true"/>Create a bitmap.xml and we don't have to set the tint properties. :)
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_btn_back_normal"
android:tint="#fac300" />Just add a selector btn_selector.xml is done!
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/bitmap" />
<item android:drawable="@drawable/ic_btn_back_normal" />
</selector>We can set the selector.xml to ImageView or Button component.
<ImageView
android:layout_width="@dimen/image_size"
android:layout_height="@dimen/image_size"
android:layout_margin="5dp"
android:src="@drawable/btn_notint_seletor"
android:clickable="true"/>
<Button
android:layout_width="@dimen/image_size"
android:layout_height="@dimen/image_size"
android:layout_margin="5dp"
android:background="@drawable/btn_notint_seletor"/>We can just omit the First step. Let two files become a file for reducing size. This is very elegant writing.
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<bitmap android:src="@drawable/ic_btn_back_normal" android:tint="#fac300" />
</item>
<item android:drawable="@drawable/ic_btn_back_normal" />
</selector>The best way's src cannot use svg file. It seems like just only can use png or jpg file.