Страница 1 из 1
Два состояния кнопки
Добавлено: 04 окт 2012, 17:07
rezak90
Обычный вопрос, даже стыдно что не могу найти решения.
Имеется кнопка (не важно Button или ImageButton), у неё должно быть два состояния (активная и не активная, но не enabled и disabled), состояниями являются две картинки.
Код: Выделить всё
<ImageButton
android:id="@+id/btnHouse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:background="@drawable/selector_button" />
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="false" android:drawable="@drawable/house" />
<item android:state_enabled="true" android:drawable="@drawable/house_deactive" />
</selector>
Перепробывал все возможные состояния. Возможно нужно покомбинировать...
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 18:00
Finch
Вот то что те6е нужно =)
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/button_focused"
android:state_focused="true" />
<item android:drawable="@drawable/button_default" />
</selector>
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 18:38
rezak90
нет =)
state_pressed - состояние когда кнопка нажата, а мне нужно "переключатель", то есть раз нажали иконка поменялась, ещё раз иконка вернулась.
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 18:43
neoksi
rezak90
Может просто легче обработчик создать?
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 18:57
rezak90
да это была моя самая первая мысль, но так как таких кнопочек 7 штук то это лишний код, сказали что через селекторы можно, я тоже думал что можно, но пока не вижу как =)
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 19:53
neoksi
Будильник пишешь?

Re: Два состояния кнопки
Добавлено: 04 окт 2012, 19:58
neoksi
А если использовать CheckBox? Просто стиль отрисовки ему изменить.
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 20:29
rezak90
не не будильник, на карте кнопочки которые включают/отключают показ некоторых действий, на счёт чекбокса интересно но геморно, ладно утро вечера мудренее, завтра покажет что да как.
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 20:47
AndreyI
Может просто тупо в обработчике нажатия менять картинку (v.setImageResource(R.drawable.house)).
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 21:19
rezak90
AndreyI писал(а):Может просто тупо в обработчике нажатия менять картинку (v.setImageResource(R.drawable.house)).
да это была моя самая первая мысль, но так как таких кнопочек 7 штук то это лишний код, сказали что через селекторы можно, я тоже думал что можно, но пока не вижу как =)
Re: Два состояния кнопки
Добавлено: 04 окт 2012, 21:44
AndreyI
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/house" android:state_selected="false"/>
<item android:drawable="@drawable/house_deactive" android:state_selected="true"/>
</selector>
А в обработчик добавляем всего одну строчку:
Код: Выделить всё
public void onClick(View v) {
v.setSelected(!v.isSelected());
...//код обработки нажатия
}
Re: Два состояния кнопки
Добавлено: 05 окт 2012, 10:04
rezak90
AndreyI красавчик, действительно помогло, хорошая идея!