Создаем кнопку в Android. Пример работы с виджетом Button в Android
Цель работы: Научиться правильно использовать такой элемент управления как кнопка. Узнать и использовать программные коды используемые для работы с кнопками. Научиться создавать интерфейс мобильного приложения, чтобы все элементы располагались естественно и понятно.
Общие сведения: Мы с вами научимся использовать виджет Button в Android.
Также здесь рассказывается о том, как обрабатывать нажатия, применять стили, работать с xml-макетом кнопки, а также управлять виджетом Button в коде. Урок будет полезен для начинающих андроид-программистов.
Сегодня мы узнаем как задавать различные расположение для кнопок, менять фоновые изображения и обрабатывать события, связанные с виджетом Button.
Кнопка представляет собой кликабельный Android виджет, который может принимать различные формы и реагировать на действия пользователя, а именно: обычное нажатие, длительное нажатие и т.д. Виджет Button доступен в пакете android.widget.Button.
Как и любой другой виджет, вы можете объявить Button в макете вашей активности или фрагмента, также создать кнопку программно.
Давайте создадим первые кнопки и зададим различные свойства каждой:
Сначала создадим новый проект ButtonProject не забывем его сохранять в директории AndroidStudioProject. Затем заменим код layout/activity_main.xml на нижеследующий:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="50dp"
android:text="TextView">
</TextView>
<Button
android:id="@+id/topButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Верхняя Кнопка" />
<Button
android:id="@+id/leftButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Левая Кнопка" />
<Button
android:id="@+id/horizontalButton"
android:layout_width="200dp"
android:layout_height="100dp"
android:text="Кнопка размером 200х100 dp" />
<Button
android:id="@+id/largeButton"
android:layout_width="300dp"
android:layout_height="200dp"
android:gravity="center_horizontal"
android:text="Большая Кнопка" />
</LinearLayout>
Как работают кнопки? Что происходит в каждом виджете Button?
Android отрендерит приведенный выше XML-код макета следующим образом:
-
Android увидит тип макета LinearLayout установит его в вертикальное положение.
-
Параметр layout_width укажет ширину макета, а layout_height — высоту. Если в каком-то из значений будет match_parent, то кнопка растянется на весь экран; wrap_content укажет, что размеры кнопки должны быть достаточными, чтобы вместить вложенный контент (текст, картинка).
-
android:layout_gravity определит позиционирование виджета Button относительно родительского компонента.
-
android:gravity определит выравнивание содержимого Button. Она задается одной из констант left, right, center_vertical, center_horizontal, center.
-
Как выглядит макет после рендеринга (прорисовки макета после анализа):