ユーザが画像をクリック(focus, click)した場合に、背景色や画像を変更する方法です.

まず、res/drawableに各状態のときに利用する画像ファイルを定義します.

 

状態の場合分けとしては、以下のようになります.

  1. フォーカスがあたっており、かつクリックされている状態
  2. フォーカスがあたっていないが、クリックされている状態
  3. フォーカスがあたっているが、クリックされていない状態
  4. フォーカスがあたっておらず、クリックもされていない状態

これで作成したファイルを、任意の名前(ここではswitchable_icon.xml)という名前で保存します.

なお、ここで記載した以外の状態も表現できるので、詳しくはAndroidのAPIを見てください.

後は、利用したいlayoutの中で、ImageViewのsrcにswitchable_iconを指定するだけで、画像の切り替えが実装できます.

 

背景色のみを切り替えたい場合は、ImageViewのsrcでは従来通りの画像ファイルを指定しておき、backgroundで先ほど作成したswitchable_icon.xmlを指定するようにします.

その上で、switchable_iconの中で指定している各種アイコン(@drawable/〜)を色指定(@color/〜)に変更します.

colorは自分で作成する必要が有るので、valueの中に適当なxmlを作成し、colorタグによって色を作成してください、

例えば、colorのXMLはこのような感じになります.

 

Leave a Reply

Your email address will not be published. Required fields are marked *