web-dev-qa-db-ja.com

XMLでのスピナーのドロップダウン矢印の色の変更

質問で書いたように、SpinnerXMLのドロップダウン矢印(カスタム矢印などではなく、デフォルトの矢印)の色を変更したいしかし問題は、XMLからそれを参照するものが何も見つからなかったことです。

出来ますか?はいの場合、どのように色を変更できますか?

前もって感謝します。

45

これを達成するには、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が生成されます。必ずスピナーを選択してから、リソースをダウンロードしてください。

112
Hussein El Feky

誰もそれを指摘していなかったことに驚いていますが、サブクラス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" />
13
mewa

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"
        /> 
12
Mehrdad Faraji

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でスタイルメソッドを使用できます。

4
Mahmoud Ayman

これを試して:

spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
                R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);
2
MrG
<Spinner
            Android:id="@+id/spinner"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:backgroundTint="#00000" />

APIレベル21以上でのみ動作します

1
Shweta Chauhan

this 依存関係を使用して非常に素晴らしく簡単なスピナーを作成し、「app:arrowTint = "@ color/green"を使用して矢印の色を変更します。

0
Ahmad Arslan