Ответ 1
Салман, установите android:button
вместо android:background
. См. Также Пользовательский флажок и андроид
Я пытаюсь применить пользовательский образ к флажку в android, для этого я создаю файл check_custom.xml
, в котором я определяю пользовательский образ для разных состояний флажка, например:
<item android:state_checked="true"
android:drawable="@drawable/btn_check_on" /> <!-- checked -->
<item android:state_checked="false"
android:drawable="@drawable/btn_check_off" /> <!-- unchecked -->
<item android:state_focused="true"
android:drawable="@drawable/btn_check_onfocus" /> <!--on focus-->
<item android:drawable="@drawable/btn_check_off" /> <!-- default -->
Три разных изображения в трех состояниях на проверенных, на фокусе и на непроверенных, и затем я назначаю этот xml файл атрибуту фона флажками, но я не получаю требуемый результат, этот метод применяет нестандартное изображение, а также изображение по умолчанию.
Салман, установите android:button
вместо android:background
. См. Также Пользовательский флажок и андроид
Мне не понравился внешний вид флажка по умолчанию, когда макет фона был темным, поэтому я изменил его с помощью селектора xml, чтобы иметь белый фон в кнопке.
Селектор необходим в android: button = "@drawable/selector_check"
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Show password"
android:textColor="@color/white"
android:button="@drawable/selector_check"
>
И вот содержание "drawable/selector_check.xml":
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@android:drawable/checkbox_on_background" /> <!-- checked -->
<item android:state_checked="false"
android:drawable="@android:drawable/checkbox_off_background" /> <!-- unchecked-->
</selector>
И это результат:
Скопируйте файл btn_check.xml с сайта android-sdk/platform/android - #/data/res/drawable в вашу проектную папку и измените состояния изображения 'on' и 'off' на свои пользовательские изображения.
Тогда вашему xml просто понадобится android:button="@drawable/btn_check"
<CheckBox
android:button="@drawable/btn_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
Если вы хотите использовать разные значки по умолчанию android, вы можете использовать android:button="@android:drawable/..."
<item android:drawable="@drawable/ON" android:state_checked="false"/>
<item android:drawable="@drawable/OFF" android:state_checked="true"/>
<item android:drawable="@drawable/ON"/>