Я пытаюсь получить эффект радиокнопки для обычных кнопок в Android
У меня есть простой переключатель Android ниже
Код для этого :
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton1" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton2" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton3" />
</RadioGroup>
</RelativeLayout>
Как настроить его, как показано ниже:
Спасибо !
[РЕДАКТИРОВАТЬ] используя код из одного из ответов
Но название кнопки затмевается опцией выбора, как ее удалить?
{EDIT} другие изменения
Окончательные изменения должны по крайней мере, я должен знать, какую кнопку я выбрал из трех переключателей .... возможно ли получить, как показано ниже?
Ответы:
Добавьте фоновый рисунок, который ссылается на изображение или селектор (как показано ниже), и сделайте кнопку прозрачной:
Если вы хотите, чтобы ваши переключатели имели другой ресурс при установленном флажке, создайте фон селектора с возможностью рисования:
Рез / рисуем / yourbuttonbackground.xml
В приведенном выше селекторе мы ссылаемся на два чертежа,
a
иb
вот как мы их создаем:res / drawable / a.xml - выбранное состояние
res / drawable / b.xml - Обычное состояние
Подробнее о чертежах здесь: http://developer.android.com/guide/topics/resources/drawable-resource.html
источник
android:button="@android:color/transparent"
чтобы удалить его.Я обновил принятый ответ и удалил лишнее.
Я создал XML для следующего изображения.
Ваш XML- код для
RadioButton
будет:radio_flat_selector.xml
для селектора фона:radio_flat_selected.xml
для выбранной кнопки:radio_flat_regular.xml
для обычного селектора:Все вышеуказанные 3 кода файла будут в
drawable/
папке.Теперь нам также понадобится
Text
Color Selector, чтобы соответствующим образом изменить цвет текста.radio_flat_text_selector.xml
для селектора цвета текста(Используйте
color/
папку для этого файла.)Примечание: я сослался на многие ответы на этот тип решения, но не нашел хорошего решения, поэтому я его принял.
Надеюсь, это будет вам полезно.
Спасибо.
источник
Используйте тот же формат файла XML из ответа Эвана, но один файл с возможностью рисования - это все, что вам нужно для форматирования.
И ваш отдельный файл для рисования:
источник
Настройка
android:background
иandroid:button
RadioButton, как принятый ответ, у меня не сработали. Изображение, доступное для рисования, отображалось в качестве фона (хотя оноandroid:button
было установлено как прозрачное) для текста переключателя какпоэтому предоставил radiobutton как настраиваемый файл radiobuttonstyle.xml
и radiobuttonstyle.xml выглядит следующим образом
и после этого сработала радиокнопка с настраиваемым стилем кнопки.
источник
Вы должны заполнить атрибут «Button» класса «CompoundButton» с возможностью рисования XML ( my_checkbox ). В XML-файле у вас должны быть:
Не забудьте заменить my_checkbox своим именем файла для флажка, который можно рисовать, checkbox_not_checked своим PNG-файлом, который является вашим флажком, когда он не установлен, и checkbox_checked с вашим изображением, когда он установлен.
Для размера напрямую обновите параметры макета.
источник
android:background
vs theandroid:button
; затем объявлениеandroid:button
прозрачным. Таким образом, текст может находиться внутри кнопки.Чтобы скрыть радиокнопку по умолчанию, я бы предложил удалить кнопку вместо того, чтобы сделать ее прозрачной, поскольку вся визуальная обратная связь обрабатывается рисованным фоном:
Также было бы лучше использовать стили, так как есть несколько переключателей:
Вам также понадобится возможность рисования Seslyn customButtonBackground .
источник
Лучший способ добавить настраиваемую возможность рисования:
Здесь удаляется наложение теней с помощью настраиваемого рисования.
источник
background
. Если вы установите фон, вы не сможете добавлять текст в RadioButton, и вам нужно будет разместить свой собственный TextViewПростой способ попробовать это
Создайте новый макет в папке с возможностью переноса и назовите его custom_radiobutton (вы также можете переименовать)
Используйте это в макете
источник
Ниже приведен пример настраиваемого переключателя. выполните следующие действия ..
XML-файл.
2. добавьте собственный xml для переключателей
2.1. Другой чертеж
custom_other_button.xml
2.2. Женский рисунок
custom_female_button.xml
2,3. мужской выдвижной
custom_radio_button.xml
источник
Я понимаю, что это запоздалый ответ, но, просматривая developer.android.com, кажется, что кнопка Toggle была бы идеальной для вашей ситуации.
http://developer.android.com/guide/topics/ui/controls/togglebutton.html
И, конечно же, вы все равно можете использовать другие предложения для рисования фона, чтобы получить желаемый вид.
Теперь, если вы хотите завершить окончательное редактирование и создать эффект «ореола» вокруг кнопок, вы можете использовать другой настраиваемый селектор, чтобы сделать именно это.
источник