Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
#1

RadioButton как обычный Button - Android

02.02.2014, 01:53. Просмотров 930. Ответов 7
Метки нет (Все метки)

Как сделать чтобы радио баттон выглядел как обычный баттон, но работал как радио баттон?
скрин для наглядности:
Миниатюры
RadioButton как обычный Button  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2014, 01:53     RadioButton как обычный Button
Посмотрите здесь:

Как использовать RadioButton в ListView? Android
Android Как при запуске проверить включен ли обычный интернет?
Android Toggle Button - Как правильно выделить нажатую кнопку цветом. Стилями или?
Как сделать вызов фиксированного номера при нажатии button Android
Android Расширил класс Button. Как нужно подправить XML-layout? Еще ClassCastException
Android Как конвертировать String в Button?
Android Как присвоить объекту Button координату (x,y) на форме?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 10:14     RadioButton как обычный Button #2
Цитата Сообщение от da1z Посмотреть сообщение
Как сделать чтобы радио баттон выглядел как обычный баттон
Есть такая штука называется StateListDrawable. Смысл её в том, что в зависимости от текущего состояния View, в качестве его фона загружается своя картинка. Состояний может быть много, например: "в фокусе", "нажато", "выбрано" итд. Для вашей задачи, вам нужно создать четыре картинки которые будут описывать следующие состояния:
1) радио баттон выбран
2) радио баттон не выбран
3) радио баттон не выбран но на него нажали пальцем и держат
4) радио баттон выбран, него нажали пальцем и держат
Затем все эти четыре картинки связываются с соответствующими им четырьмя состояниями view. Делается это в xml файле корневым элементом которого является <selector>. После создания, этот файл помещается в директорию res\drawable и теперь когда вы будете создавать в вашем layout файле радио баттоны, нужно для каждого из них установить свойство android:button="@drawable/имяВашегоXmlФайла". Вот небольшой пример который показывает как делать это http://blog.devminded.com/posts/cust...id-radiobutton
А самое главное и программировать ничего не надо
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
02.02.2014, 13:15  [ТС]     RadioButton как обычный Button #3
Спасибо. С этим понятно.Допустим я это сделал. Но на этих радиобаттонах ещё есть иконка. Тоесть мне придится делать для каждого радиобаттона по 4 картинки и каждому свой селектор описывать. Или можно сделать 1 селектор и потом в каждом радиобаттоне указывать свою иконку?
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 13:51     RadioButton как обычный Button #4
Цитата Сообщение от da1z Посмотреть сообщение
Но на этих радиобаттонах ещё есть иконка. Тоесть мне придится делать для каждого радиобаттона по 4 картинки и каждому свой селектор описывать. Или можно сделать 1 селектор и потом в каждом радиобаттоне указывать свою иконку?
Я и не подумал что картинки должны быть разными
В таком случае селекторов должно быть столько же сколько разновидностей иконок существует. Каждому радиобаттону свой селектор с нужной иконкой. Другого пути я пока не вижу.
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
02.02.2014, 15:50  [ТС]     RadioButton как обычный Button #5
ну тоесть нельзя бэграунд и контент задать отдельно? а ещё вопрос:
там в примере он указывает android:drawable="@drawable/radio_off_pressed", где ссылка на рисурс @drawable/radio_off_pressed . А можно какнибудь просто указать цвет ? например #0005000 или что-то в этов вроде и если можно, то можно также указать граентную заливку?
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 19:19     RadioButton как обычный Button #6
Цитата Сообщение от da1z Посмотреть сообщение
ну тоесть нельзя бэграунд и контент задать отдельно?
Только что проверил - можно задать селектор и фон одновременно. Похоже, что не придётся городить кучу селекторов с разными иконками, а оставить только один который будет например отрисовывать рамку вокруг картинки, а сама картинка будет выбираться индивидуально для каждого радиобаттона.
Цитата Сообщение от da1z Посмотреть сообщение
А можно какнибудь просто указать цвет ?
Можно через xml создать картинку которая будет представлять собой одну большую заливку одним цветом. Делается это так:
XML
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable name="red_color">#ff0000</drawable>
</resources>
Цитата Сообщение от da1z Посмотреть сообщение
можно также указать граентную заливку?
Градиент тоже можно, для этого потребуется создать например прямоугольник и потом использовать его в качестве фона. Сохраните этот xml файл в директории res/drawable:
XML
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <gradient
        android:endColor="#0000FF"
        android:startColor="#FF0000" />
</shape>
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
03.02.2014, 00:23  [ТС]     RadioButton как обычный Button #7
Сделал так:
XML
1
2
3
4
5
6
      <RadioButton android:id="@+id/rad1" android:text="Button1"
                   android:background="@drawable/rbtnSelector"
                   android:button="@drawable/cart"
          android:layout_width="105px" 
          android:layout_height="105px"
          android:textSize="13px" />
в принципе всё работает, но картинка, которая android:button="@drawable/cart" , она не маштабируется под размеры, а обрезается и получается что виден только её левый верхний угол, как сделать чтобы она маштабировалась под размеры?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 10:01     RadioButton как обычный Button
Еще ссылки по теме:

Кто знает как отследить button.setOnClickListener? Android
Сделать обычный get запрос Android
Android Как обратиться к элементу (button) внутри пункта списка (ListView)
Android Как подвинуть Fab button?
Android Как привязать Location к Button

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.02.2014, 10:01     RadioButton как обычный Button #8
Цитата Сообщение от da1z Посмотреть сообщение
как сделать чтобы она маштабировалась под размеры?
Попробуйте так - создайте в директории res/drawable новый xml файл с таким содержимым:
XML
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/cart"
    android:gravity="fill"
    />
И теперь для параметра android:button используйте именно этот файл а не @drawable/cart
Yandex
Объявления
03.02.2014, 10:01     RadioButton как обычный Button
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru