Фоновая форма кнопки Android
Я хочу создать переключатель, который выглядит следующим образом:
То есть, когда выбрано, появляется галочка, указывающая, что она выбрана вместо точки. Если этот параметр не выбран, отображается только оранжевый фон (или другой цвет).
Черный фон страницы - это просто фон приложения.
Я знаю, что я мог бы создать различные рисованные элементы для разных состояний для каждой кнопки, но это не очень расширяемо, если много цветов.
Я думал, что я мог бы добавить изображение галочки в качестве рисования для android:button
приписывать и поставлять разные цвета для android:background
для радио кнопок. Но это не работает, потому что форма фона всегда квадратная. В итоге у меня была квадратная кнопка.
Как лучше всего реализовать такую кнопку? Или, как мне изменить форму фона на круглую / овальную вместо квадратной?
Вот что у меня сейчас:
<!-- layout.xml -->
<RadioButton
android:id="@+id/radio1"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@color/orange"
android:button="@drawable/radio"/>
<!-- drawable/radio.xml -->
<item
android:state_checked="true"
android:drawable="@drawable/checkmark_on_oval"
>
</item>
2 ответа
Попробуйте это может быть полезным для вас. поставить свойства radio_button как
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"
android:checked="true"
android:drawableLeft="@drawable/radio_button_selector"
android:drawablePadding="5dp"
android:paddingLeft="2dp" />
В папку drawable положить rb_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_button_unchecked" android:state_checkable="true"/> <!-- pressed -->
<item android:drawable="@drawable/radio_button_checked" android:state_checked="true"/> <!-- focused -->
<item android:drawable="@drawable/radio_button_unchecked"/> <!-- default -->
</selector>
Здесь radio_button_unchecked и radio_button_checked - это два изображения для ваших радиокнопок.
Вы можете создать круглую форму, используя следующий код
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#9F2200"/>
<stroke android:width="2sp" android:color="#fff" />
</shape>
Попробуйте это..