質問で書いたように、Spinner
XMLのドロップダウン矢印(カスタム矢印などではなく、デフォルトの矢印)の色を変更したいしかし問題は、XML
からそれを参照するものが何も見つからなかったことです。
出来ますか?はいの場合、どのように色を変更できますか?
前もって感謝します。
これを達成するには、3つの方法があります。
1。コードを通して:
Xmlで、スピナーにIDがあることを確認してください。 idが「spinner」であるスピナーがあるとします。
コードで、onCreate()に次を追加します。
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);
ここで、赤は、valuesフォルダーのcolors.xmlで定義した色です。
2。 xml経由:
API 21以降の場合:
<Spinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:backgroundTint="@color/red" />
または、サポートライブラリを使用する場合は、次を使用できます。
<Android.support.v7.widget.AppCompatSpinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
3。ドロアブルを介して:
次のオンラインツールを使用できます。 http://Android-holo-colors.com
これにより、好みの色で任意のビューのカスタムDrawableが生成されます。必ずスピナーを選択してから、リソースをダウンロードしてください。
誰もそれを指摘していなかったことに驚いていますが、サブクラスWidget.AppCompat.Spinner
および変更backgroundTint
<style name="Spinner" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/spinnerTint</item>
</style>
Spinner
に適用します
<Spinner
style="@style/Spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:spinnerMode="dropdown" />
backgroundTint属性を使用する
<Spinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:backgroundTint="@color/white"
/>
min_SDK <21(Lollipop)の場合、AppCompatSpinnerを使用する必要があります
<Android.support.v7.widget.AppCompatSpinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:backgroundTint="@color/white"
/>
If(-API 21 +){
直接使用できますAndroid:backgroundTint="@color/color"
、スピナー内:
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:backgroundTint="@color/color" />
} else {
独自のスタイルを作成します。
<style name="spinner_style" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/color</item>
</style>
次にスピナーに:
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
style="@style/spinner_style"/>
}
注:すべてのAPIでスタイルメソッドを使用できます。
これを試して:
spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:backgroundTint="#00000" />
APIレベル21以上でのみ動作します
this 依存関係を使用して非常に素晴らしく簡単なスピナーを作成し、「app:arrowTint = "@ color/green"を使用して矢印の色を変更します。