前置き
iOSでは imageとhightlightedImageの2種類を設定できて、2ステートの画像を切り替えるのが簡単だ。
Androidでのやりかたがぴんとこなかったのでメモ
selector作成
selectorを作成する.
たとえば、something_default.png
と something_selected.png
がある場合は以下のように設定する。
drawable/something_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/something_default" android:state_selected="true" />
<item android:drawable="@drawable/something_selected" android:state_selected="false" />
</selector>
これをImageViewに設定する
<ImageView
android:id="@+id/something"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/something_selector" />
好きなようにコードで状態を変化させればOK
ImageView view = findViewById(R.id.something);
view.setSelected(true); // -> something_selected.pngに切り替わる
view.setSelected(false); // -> something_default.pngに切り替わる