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

Изменить цвет переключателя на Android

Я пытаюсь изменить цвет моего переключателя в Android. Я понимаю, что мне понадобятся новые 9 патчей. Я перешел к http://android-holo-colors.com/ и выбрал свой цвет и выбран (Switch Jelly Bean). Для использования Switch Jelly Bean мне пришлось использовать: https://github.com/BoD/android-switch-backport. Чтобы импортировать его в свой проект, мне пришлось добавить:

<item name="switchStyle">@style/Widget.Holo.CompoundButton.Switch</item>

для моих стилей, а затем в xml мне нужно использовать такой переключатель:

<org.jraf.android.backport.switchwidget.Switch android:layout_width="wrap_content" android:layout_height="wrap_content" />

Теперь все с коммутатором работает нормально. Затем я взял все, что было выведено из генератора цветных головоломок android, и поместил его в соответствующие файлы:

  • drawable (2 файла-селектора)
  • drawable-hdpi (файлы 9patch)
  • drawable-xhdpi (файлы 9patch)
  • drawable-xxhdpi (файлы 9patch)

то я добавил в свой xml:

<org.jraf.android.backport.switchwidget.Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/apptheme_switch_inner_holo_light" android:track="@drawable/apptheme_switch_track_holo_light" />

но это все еще оригинальный синий цвет. Я считаю, что делаю все правильно. Все компилируется (xml, java). Примечание. Я также импортирую org.jraf.android.backport.switchwidget.Switch в свою java. Любые идеи?

4b9b3361

Ответ 1

По this, (прямой ответ от копирования-вставки BoD):

  • Вы не должны использовать android:thumb и android:track, но вместо этого app:thumb и app:track И вы должны добавить следующее в корень вашего XML-документа:

    xmlns:app="http://schemas.android.com/apk/res-auto"

Ответ 2

Самый простой способ в Android Lollipop и выше,

<style name="AppTheme" parent="MaterialTheme.Light">
    ...
    <item name="android:colorControlActivated">@color/color_switch</item>
</style>

Ответ 3

чтобы изменить цвет переключателя, вы можете использовать два изображения

  • зеленый - когда переключатель включен
  • красный - когда переключатель выключен

теперь поместите этот файл в выпадающую папку

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/blue_checked" android:state_checked="true"/>
    <item android:drawable="@drawable/blue_unchecked" android:state_checked="false"/>

</selector>

и в XML файле макета используйте его как ниже

<CheckBox
    android:id="@+id/user_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/notif_checkbox_selector"
/>

Ответ 4

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

switch_thumb.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="false" android:drawable="@drawable/switch_thumb_holo_light" />
        <item android:state_pressed="true"  android:drawable="@drawable/switch_thumb_activated_holo_light" />
        <item android:state_checked="true"  android:drawable="@drawable/switch_thumb_activated_holo_light" />
        <item                               android:drawable="@drawable/switch_thumb_holo_light" />
    </selector>

В макете переключателя:

android:thumb="@drawable/switch_thumb"

Ответ 5

Возможно, вам нужно поставить

style="@style/switchStyle"

в вашем XML, а также