Поделиться через


Настраиваемая кнопка

В этом разделе вы создадите кнопку с пользовательским изображением вместо текста, используя Button мини-приложение и XML-файл, который определяет три разных изображения, которые будут использоваться для различных состояний кнопки. При нажатии кнопки отобразится короткое сообщение.

Щелкните правой кнопкой мыши и скачайте три изображения ниже, а затем скопируйте их в каталог Resources/drawable проекта. Они будут использоваться для различных состояний кнопки.

Green Android icon for normal stateOrange Android icon for focused stateYellow Android icon for pressed state

Создайте файл в каталоге Resources/drawable с именем android_button.xml. Вставьте следующий XML-код:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/android_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/android_focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/android_normal" />
</selector>

Это определяет один ресурс, который изменит его изображение на основе текущего состояния кнопки. Первый <item> определяет android_pressed.png в качестве изображения при нажатии кнопки (она активирована); вторая <item> определяет android_focused.png как изображение при фокусе кнопки (когда кнопка выделена с помощью трекбола или боковой панели); а третья <item> определяет android_normal.png в качестве изображения для нормального состояния (если ни нажатие, ни фокус). Этот XML-файл теперь представляет один ресурс, доступный для рисования, и при ссылке Button на фон, отображаемое изображение изменится на основе этих трех состояний.

Примечание.

Порядок <item> элементов важен. При ссылке <item>на эту рисуемую ссылку s проходят по порядку, чтобы определить, какой из них подходит для текущего состояния кнопки. Так как "обычный" образ последний, он применяется только в том случае, если условия android:state_pressed и android:state_focused оба вычисляют значение false.

Откройте файл Resources/layout/Main.axml и добавьте Button элемент:

<Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:background="@drawable/android_button" />

Атрибут android:background указывает ресурс, который можно использовать для фона кнопки (который при сохранении в Resources/drawable/android.xml ссылается как @drawable/android). Это заменяет обычное фоновое изображение, используемое для кнопок во всей системе. Чтобы можно было изменить изображение на основе состояния кнопки, изображение должно быть применено к фоновому режиму.

Чтобы сделать кнопку делать что-то при нажатии, добавьте следующий код в конце OnCreate() Метод:

Button button = FindViewById<Button>(Resource.Id.button);

button.Click += (o, e) => {
    Toast.MakeText (this, "Beep Boop", ToastLength.Short).Show ();
};

Button При щелчке по макету добавляется Toast сообщение, которое будет отображаться при Button щелчке.

Теперь запустите приложение.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными влицензии Creative Commons 2.5 Attribution.