Какой тип кнопки может переключать / изменять состояния в Android? - PullRequest
0 голосов
/ 23 февраля 2012

Итак, у меня есть кнопка изображения, и я хочу, чтобы на ней было два состояния.Он будет работать как кнопка закладки, которая имеет два состояния.Если пользователь нажимает кнопку, он меняет изображение, а если он нажимает кнопку снова, я хочу вернуть исходное изображение.

Возможно ли это?Есть ли более простой способ использовать кнопку другого типа?Спасибо

Ответы [ 4 ]

2 голосов
/ 23 февраля 2012

Попробуйте изменить тему на «Какие кнопки могут переключать / изменять состояния?»

Похоже, вам нужно ToggleBotton

<ToggleButton                  
        android:layout_width="wrap_content"
        android:layout_height="26dp"
        android:background="@color/button_colors"
        android:button="@null"
        android:textOff="@null"
        android:textOn="@null" />

И этот xml определяет цвета / изображения кнопки в состоянии покоя / нажатые, поместите в res/color/button_colors.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/button_rest"/>
<item android:state_checked="true" android:drawable="@drawable/button_on" />    
</selector>
0 голосов
/ 19 марта 2012

Полагаю, вы можете использовать Toggle Button и надеяться, что это решит вашу проблему. Просто взгляните на простой XML-код:

<ToggleButton
              android:id="@+id/tglbtn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textOn="ON"
              android:textOff="OFF"
              />

И просто проверьте ответ, приведенный здесь по этой ссылке: Android: укажите два разных изображения для кнопки переключения, используя XML

Кроме того, Я опубликовал простое руководство по Toggle Button. Просто посмотрите на мой скромный блог, если вы найдете это полезным. Вот ссылка: http://androiddesk.wordpress.com/2012/03/10/toggle-button-in-android/

0 голосов
/ 05 марта 2012
0 голосов
/ 23 февраля 2012

Да, вы также можете использовать обычные кнопки. Сначала создайте XML-файл селектора в каталоге res / drawable. Пример:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_enabled="true" android:state_selected="true"
android:drawable="@drawable/selectedimage"/>

<item android:state_enabled="true" android:state_selected="false"
android:drawable="@drawable/notselectedimage"/>

</selector>

В определении кнопки в макете XML просто добавьте этот атрибут:

android:background="@drawable/myselectorxmlfile"

А затем вы программно устанавливаете выбранные состояния самостоятельно (в onClickListener), и кнопки изображений изменят фоновое состояние.

button.setSelected(true) // or false;
...