page.title=Обзор пользовательского интерфейса @jd:body

Все элементы интерфейса пользователя в приложении Android создаются с помощью объектов {@link android.view.View} и {@link android.view.ViewGroup}. Объект {@link android.view.View} формирует на экране элемент, с которым пользователь может взаимодействовать. Объект {@link android.view.ViewGroup} содержит другие объекты {@link android.view.View} (и {@link android.view.ViewGroup}) для определения макета интерфейса.

Android предоставляет коллекцию подклассов {@link android.view.View} и {@link android.view.ViewGroup}, которая включает в себя обычные элементы ввода (такие как кнопки и текстовые поля) и различные модели макет (такие как линейный или относительный макет).

Макеты пользовательского интерфейса

Пользовательский интерфейс для каждого компонента вашего приложения определяется с помощью иерархии объектов {@link android.view.View} и {@link android.view.ViewGroup}, как показано на рисунке 1. Каждая группа просмотра представляет собой невидимый контейнер, в котором объединены дочерние виды, причем дочерние виды могут представлять собой элементы ввода или другие виджеты, которые составляют часть пользовательского интерфейса. Эта древовидная иерархия может быть настолько простой или сложной, насколько требуется (чем проще, тем лучше для производительности).

Рисунок 1. Иллюстрация иерархии, которая определяет макет интерфейса.

Чтобы объявить свой макет, можно создать экземпляры объектов {@link android.view.View} в коде и запустить построение дерева, но самый простой и наиболее эффективный способ — определение макета с помощью файла XML. XML позволяет создавать удобочитаемую структуру макета, подобно HTML.

Имя элемента XML для вида соответствует классу Android, к которому от относится. Так, элемент <TextView> создает виджет {@link android.widget.TextView} в пользовательском интерфейсе, а элемент <LinearLayout> создает группу просмотра {@link android.widget.LinearLayout} .

Например, простой вертикальный макет с текстом и кнопкой выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

При загрузке ресурсов макетов в приложение Android инициализирует каждый узел макета в объект режима выполнения, который можно использовать для определения дополнительного поведения, запроса состояния объекта или изменения макета.

Полное руководство по созданию макета пользовательского интерфейса см. в документе Макеты XML.

Компоненты пользовательского интерфейса

Не обязательно создавать все элементы пользовательского интерфейса с помощью объектов {@link android.view.View} и {@link android.view.ViewGroup}. Android предоставляет несколько компонентов приложений, которые содержат стандартный макет пользовательского интерфейса, где остается лишь определить содержимое. Каждый из этих компонентов пользовательского интерфейса содержит уникальный набор API, который описан в соответствующих документах, таких как Строка действий, Диалоги и Уведомления о состоянии.