Androidのselectorの使い方を解説

2019年5月17日

本稿ではselectorについて具体的に説明してきます。

早速次項を見ていきましょう。

 

 

selectorとは?

Androidアプリにおいて、ボタンや画像の状態によって色や画像を簡易的に差し替えることができる仕組みです。

Javaコードで煩雑なロジックを組む必要がなくレイアウト(XML)ファイルで簡易的に作成できます。

 

selectorの状態とは?

selectorで表現できる状態は5種類あります。

どういう状態があるかを表にまとめてみましたのでご覧ください。

 

状態 selectorでの表現
通常時 何も指定なし
フォーカス時 android:state_focused=”true”
android:state_enabled=”true”
android:state_pressed=”false”
無効状態かつフォーカス時
android:state_focused="true"
android:state_enabled="false"
android:state_pressed="false"
押下状態
android:state_focused="true"
android:state_enabled="true"
android:state_pressed="true"
無効状態 android:state_enabled=”false”

 

ボタンや画像を押下した時に背景色を変更、

または画像を差し替えるといった時にselectorを使うと簡単に実装ができます。

次項でselectorの具体的な実装方法を見ていきましょう。

 

selectorの実装方法

res/drawble配下に任意ファイル名でxmlを作成します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--通常時-->
<item
    android:drawable="@drawable/button_ca" />
<!--フォーカス時-->
<item
    android:state_focused="true"
    android:state_enabled="true"
    android:state_pressed="false"
    android:drawable="@drawable/button_ca" />
<!--無効状態かつフォーカス時-->
<item
    android:state_focused="true"
    android:state_enabled="false"
    android:state_pressed="false"
    android:drawable="@drawable/button_ca" />
<!--押下時-->
<item
    android:state_focused="true"
    android:state_enabled="true"
    android:state_pressed="true"
    android:drawable="@drawable/button_ca" />
<!--無効時-->
<item
    android:state_enabled="false"
    android:drawable="@drawable/button_cb" />
</selector>