Настраиваемая кнопка
В этом разделе вы создадите кнопку с пользовательским изображением вместо текста, используя Button
мини-приложение и XML-файл, который определяет три разных изображения, которые будут использоваться для различных состояний кнопки. При нажатии кнопки отобразится короткое сообщение.
Щелкните правой кнопкой мыши и скачайте три изображения ниже, а затем скопируйте их в каталог Resources/drawable проекта. Они будут использоваться для различных состояний кнопки.
Создайте файл в каталоге 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.