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

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

Android Studio
20212.1
 




Customized Spinner

 

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

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


 
 

Adapterのカスタマイズ

 

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

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

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

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

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

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

 

サンプルコード

 

まとめると

MainActivity.java

 
アダプタークラスのファイルを作成します
TestAdapter.java

 

activty_main.xml

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

 
リソース
strings.xml

 

サンプル動画

 

 

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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする