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

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

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

RadioButton как обычный Button - Программирование Android

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

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

Как в Android положить один объект (button) на другой (button)? - Программирование Android
Скажите, как можно положить один объект на другой, так что бы они оба были кликабельными? У менять есть две кнопки примыкающие друг к...

Обычный стринг, как путь к значениям массива, как сделать? - Программирование Android
Привет всем. Хотел вытащить массивы, их очень много, и каждый прописывать в коде через конструкцию...

Как при запуске проверить включен ли обычный интернет? - Программирование Android
Доброго времени суток. Как при запуске проверить включен ли обычный интернет? То есть Передача данных. Спасибо, за ответы

Как использовать RadioButton в ListView? - Программирование Android
Хочу использовать свой ListView с расположены на нем тремя TextView и RadioButton, для выбора пользователем одного пункта. Заполняем...

Как конвертировать String в Button? - Программирование Android
Добрый вечер, уважаемые пользователи форума! Сегодня у меня возникла одна проблема: Есть 100 кнопок с именами переменных: b1, b2,...

Как подвинуть Fab button? - Программирование Android
возникла проблема размещения Fab button'а в нужном месте... а именно он расположен внизу активити и его до половины перекрывает...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 10:14 #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
А самое главное и программировать ничего не надо
1
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
02.02.2014, 13:15  [ТС] #3
Спасибо. С этим понятно.Допустим я это сделал. Но на этих радиобаттонах ещё есть иконка. Тоесть мне придится делать для каждого радиобаттона по 4 картинки и каждому свой селектор описывать. Или можно сделать 1 селектор и потом в каждом радиобаттоне указывать свою иконку?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 13:51 #4
Цитата Сообщение от da1z Посмотреть сообщение
Но на этих радиобаттонах ещё есть иконка. Тоесть мне придится делать для каждого радиобаттона по 4 картинки и каждому свой селектор описывать. Или можно сделать 1 селектор и потом в каждом радиобаттоне указывать свою иконку?
Я и не подумал что картинки должны быть разными
В таком случае селекторов должно быть столько же сколько разновидностей иконок существует. Каждому радиобаттону свой селектор с нужной иконкой. Другого пути я пока не вижу.
1
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
02.02.2014, 15:50  [ТС] #5
ну тоесть нельзя бэграунд и контент задать отдельно? а ещё вопрос:
там в примере он указывает android:drawable="@drawable/radio_off_pressed", где ссылка на рисурс @drawable/radio_off_pressed . А можно какнибудь просто указать цвет ? например #0005000 или что-то в этов вроде и если можно, то можно также указать граентную заливку?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.02.2014, 19:19 #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>
1
da1z
189 / 189 / 17
Регистрация: 03.12.2009
Сообщений: 853
03.02.2014, 00:23  [ТС] #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" , она не маштабируется под размеры, а обрезается и получается что виден только её левый верхний угол, как сделать чтобы она маштабировалась под размеры?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.02.2014, 10:01 #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
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 10:01
Привет! Вот еще темы с ответами:

Как привязать Location к Button - Программирование Android
Всем привет! Не получается привязать свое место положение к Button. Помогите решить проблему,спасибо. public void...

API 17 как установить backround у Button? - Программирование Android
Я переопределил стили для styleButton,который идет по умолчанию в API 22 и выше,таким образом, что в зависимости от цвета темы меняется фон...

Кто знает как отследить button.setOnClickListener? - Программирование Android
хочу что то типа button.setOnTouchListener(this); @Override public boolean onTouch(View view, MotionEvent...

Как присвоить объекту Button координату (x,y) на форме? - Программирование Android
Необходимо задать объекту координату, чтобы например кнопка, когда на нее нажали, переместилась в другое место экрана. На Delphi например...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.02.2014, 10:01
Ответ Создать тему
Опции темы

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