[Android] Spinner をカスタマイズして画像リストを表示する

Android7

Spinner はただリスト項目を選択するだけではなく、画像とテキストをレイアウトすることも可能です。ListViewと同じようにadapterをカスタマイズして使い、ちょっとリッチなspinnerにすることもできます。
 

Android Studio 2.3
Android 7.1.1
 



Customized Spinner

 
Spinnerの基本については Spinner を参照ください。画像をSpinnerで表示することまではあまりないかもしれませんが、リスト要素のフォントやサイズ、背景色などちょっと変更したい場合は多々あります。

作成手順としては基本のSpinnerと同じですが、カスタマイズするのはAdapterです。このあたりはListViewのAdapterのカスタマイズと同様です。

  1. 選択肢を設定する
  2. Spinnerのインスタンスを生成して、Adapterを設定
  3. 選択肢が選択された時の処理を記述

1.  girlsの画像とその名前を選択肢にします。画像の場合はdrawableに入れてそのresourceの画像名をリストにします。

2. TestAdapterというBaseAdapterを継承したAdapterクラスを作りこれによりカスタマイズします。基本のSpinnerではデフォルトで設定されているレイアウトを使いましたが、自前でレイアウトを記述しますのでここでカスタマイズを施せます。

3. リスナーを設定して選択されたセルの位置を取得して画像を表示します。

@drawableに置いた画像をその名前から引き出すためにsetImageResource( Resource ID )を使います。

まとめると

MainActivity.java

 
TestAdapter.java

 

activty_main.xml


Spinnerで表示するリストのレイアウト
list.xml

 

 
関連記事:
プルダウンで項目選択できるSpinnerをアプリに設定する
 
References:
Spinners
ArrayAdapter