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

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

Android Studio 3.4.2
API 29
AndroidX
 



Customized Spinner

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

spinner custom 02b - [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

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加




アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう、時間の制約がないところが一番の魅力です。

以下の3つはAndroidが学習できるオンラインスクールです。


TECH ACADEMY
Androidアプリコース



侍エンジニア塾
侍エンジニア塾 無料体験レッスン



CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp





正直ネットや本では限界があります。直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。

尚、スクールがダメだと言う人がいますが、やる気があれば問題ありません。与えられるのを待っていてはいけないですね
欲しいものは取りに行くのです。


Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影


Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

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

フォローする