Intereting Posts
Ошибка Android «не удалось найти явный класс активности» Firefox для Android не запускает приложение при нажатии ссылки Позиция активности диалогового окна Android Подключение к VPN в Genymotion Android Получение и обработка словаря <string, List <string >> из мыла с использованием KSoap2 AlarmManager Android каждый день Получить самую высокую скорость обновления GPS от оборудования GPS в моем Android Как изменить цвет кнопки в Android при нажатии? Как узнать, сколько аккумуляторов используется моим Android-устройством на устройствах пользователя? OnPageScrolled () не вызывается Активность OnCreate называется, когда телефон идет спать Как переопределить выбор текста по умолчанию в Android-браузере os 4.1+? В libgdx, как мне получить вход с кнопки «Назад»? Для вызова требуется уровень API 23 (текущий минимум равен 14): android.app.Activity # requestPermissions, checkSelfPermission Действия в onActivityResult и "Ошибка Не удается выполнить это действие после onSaveInstanceState"

RadioButton – как использовать пользовательский доступный?

Похоже, мы можем использовать следующее в RadioButton:

android:button="@drawable/myCustomStateBackground" 

Но этот доступный только занимает место, где обычно будет проходить радиопередача. В идеале я хочу, чтобы весь фон на кнопке был сдержанным. Поэтому, когда нажата, я хочу, чтобы вся кнопка выглядела так, как будто она застряла в нажатом состоянии. Для этого я надеялся, что смогу сделать что-то вроде:

 android:button="null" android:background="@drawable/myCustomStateBackground" 

Но тогда фоновый чертеж не знает о состоянии нажатия, как это делает атрибут кнопки. Есть ли способ обойти это?

Solutions Collecting From Web of "RadioButton – как использовать пользовательский доступный?"

Дайте вашему радиобутту собственный стиль:

 <style name="MyRadioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton"> <item name="android:button">@drawable/custom_btn_radio</item> </style> 

custom_btn_radio.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_window_focused="false" android:drawable="@drawable/btn_radio_on" /> <item android:state_checked="false" android:state_window_focused="false" android:drawable="@drawable/btn_radio_off" /> <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/btn_radio_on_pressed" /> <item android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/btn_radio_off_pressed" /> <item android:state_checked="true" android:state_focused="true" android:drawable="@drawable/btn_radio_on_selected" /> <item android:state_checked="false" android:state_focused="true" android:drawable="@drawable/btn_radio_off_selected" /> <item android:state_checked="false" android:drawable="@drawable/btn_radio_off" /> <item android:state_checked="true" android:drawable="@drawable/btn_radio_on" /> </selector> 

Замените чертежи своими собственными.

Вы должны установить android:button="@null" вместо "null" .

Вы были очень близки!

Полное решение здесь:

 <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:checked="true" android:text="RadioButton" /> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:layout_marginTop="20dp" android:text="RadioButton" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/oragne_toggle_btn" android:layout_marginTop="20dp" android:text="RadioButton" /> </RadioGroup> 

Селектор XML

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/orange_btn_selected" android:state_checked="true"/> <item android:drawable="@drawable/orange_btn_unselected" android:state_checked="false"/> </selector> 

Если вы хотите изменить только значок радиокнопки, вы можете добавить к вашему переключателю только android:button="@drawable/ic_launcher" и сделать чувствительный щелчок, тогда вы должны использовать селектор

  <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/image_what_you_want_on_select_state" android:state_checked="true"/> <item android:drawable="@drawable/image_what_you_want_on_un_select_state" android:state_checked="false"/> </selector> 

И установите для вашего android:background="@drawable/name_of_selector" радио android:background="@drawable/name_of_selector"