Подтвердить что ты не робот

Изменение цвета стрелки вниз Spinner в XML

Как я писал в своем вопросе, я хочу изменить цвет стрелки вниз (стрелка по умолчанию, а не пользовательская стрелка или что-то в этом роде) Spinner в XML но проблема в том, что я не мог найти ничего, чтобы ссылаться на него из XML.

Возможно ли это? Если да, как я могу изменить цвет?

Спасибо заранее.

4b9b3361

Ответ 1

Есть три способа добиться этого.

1. Через код:

В вашем xml убедитесь, что ваш счетчик имеет идентификатор. Скажем, у нас есть счетчик с идентификатором "spinner".

В вашем коде добавьте следующее в свой onCreate():

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);

где красный цвет определяется вашим цветом в color.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

Это создаст пользовательские чертежи для любого вида, который вы хотите, с вашим предпочтительным цветом. Убедитесь, что вы выбрали spinner, а затем загрузите ресурсы.

Ответ 2

Я удивлен, что никто не указал на это, но вы можете просто подклассом 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" />

Ответ 3

использовать атрибут 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"
        /> 

Ответ 4

Если (API 21+) {

вы можете использовать непосредственно android:backgroundTint="@color/color" внутри вашего Spinner:

<Spinner
   android:id="@+id/spinner"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:backgroundTint="@color/color" />

} еще {

создать свой собственный стиль:

<style name="spinner_style" parent="Widget.AppCompat.Spinner">
        <item name="backgroundTint">@color/color</item>
</style>

затем в Spinner:

<Spinner
   android:id="@+id/spinner"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   style="@style/spinner_style"/> 

}

Примечание: вы можете использовать метод стиля во всех API.

Ответ 5

попробуйте следующее:

spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this,
                R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP);

Ответ 6

<Spinner
            android:id="@+id/spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="#00000" />

Работает только выше уровня API 21

Ответ 7

Используйте эту зависимость для создания очень приятного и простого блесна и используйте "app: arrowTint =" @color/green ", чтобы изменить цвет стрелки