Что я должен использовать ImageButton или Button? - PullRequest
10 голосов
/ 24 ноября 2010

У меня есть кнопка с двумя состояниями (выбрано и не выбрано).изображение кнопки отличается для состояний.Какой из них я должен использовать?Как установить изображения и состояния?Пожалуйста, дайте предложения (я новичок в Android).

1 Ответ

14 голосов
/ 24 ноября 2010

Использовать конфигурацию xml в папке drawable. Вместо ссылки на изображение в качестве фона для вашей кнопки, вы ссылаетесь на эту конфигурацию xml (имя файла):

Например: my_button.xml

<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:state_focused="true"
    android:state_pressed="false"
    android:drawable="@drawable/button_style1_active" />
<item
    android:state_focused="true"
    android:state_pressed="true"
    android:drawable="@drawable/button_style1_down" />
<item
    android:state_focused="false"
    android:state_pressed="true"
    android:drawable="@drawable/button_style1_down" />
<item
    android:drawable="@drawable/button_style1_up" />

</selector>

Использовать в layout.xml:

<Button android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Tap me" 
        android:background="@drawable/my_button"/>

С помощью этой конфигурации вы можете влиять на внешний вид кнопки, когда она нажата, сфокусирована и так далее. Это одинаково для обоих типов кнопок (Button и ImageButton). Если ваша кнопка не содержит текста, используйте ImageButton.

...