【Android Studio】Spinner スピナーの文字色・背景色のカスタマイズ方法

ここでは「Spinner(スピナー)の文字色・背景色のカスタマイズ方法」を紹介しています。
Spinner とダイアログの文字色・背景色を画像のように変更してみます。
*ドロップダウンも同じ方法でカスタマイズできます。


開発環境
Android Studio 3.4
Android Emulator Nexus5 (API27)
ファイル名について
このサンプルでは
- MainActivity.java
- activity_main.xml
にコードを書いていきます。
ご自身のプロジェクトに合わせて変更してください。
解説
1. Spinnerに表示する配列を用意する
Android Studio 画面左側のプロジェクト構造から、res → values → strings.xml を開きます。

4~8行目を追加します。
2. レイアウトの作成
activity_main.xml を開いて Spinner を用意します。
13行目
android:entries="@array/list"
先ほど strings.xml に用意したリストをセットしています。
15行目
android:background="@android:color/holo_blue_light"
Spinner の背景色を指定します。
色は “#33B5E5” のように直接書くか、res → values → colors.xml に定義することもできます。

3. Spinnerのカスタマイズ
画面左側のプロジェクト構造にある layout フォルダの上で右クリックして、New → Layout resource file を選択します。

File name に「custom_spinner」と入力して「OK」を押します。

custom_spinner.xml が作成されたら、以下のように書きます。

9行目
android:textColor="@android:color/white"
文字色を指定しています。
10行目
android:background="@drawable/abc_spinner_mtrl_am_alpha"
背景に下向きの矢印画像を指定しています。
11行目
android:backgroundTint="@android:color/white"
下向き矢印の色を指定します。
background ではなく backgroundTint を使う点に注意してください。
4. ダイアログのカスタマイズ
custom_spinner.xml と同じ手順で custom_spinner_dropdown.xml を作成します。

custom_spinner_dropdown.xml が作成されたら、以下のように書きます。

9~10行目
custom_spinner.xml と同様に textColor(文字色)と background(背景)を変更します。
11行目
android:textAlignment="center"
文字を中央揃えにしています。
Spinner の文字列を中央揃えにしたい場合は、activity_main.xml の Spinner タグ内に textAlignment を追加します。
5. デザインを反映させる
最後に custom_spinner.xml と custom_spinner_dropdown.xml に用意したデザインを Spinner に反映させます。
MainActivity.java を開いて、5・6・15~23行目を追加します。
6. 完成
以上で完成です!