Основы создания интерфейса

16.01.2025

Графический интерфейс пользователя (GUI) в Android представляет собой иерархию объектов android.view.View и android.view.ViewGroup. Каждый объект ViewGroup является контейнером, который организует дочерние объекты View. К контейнерам относятся такие элементы, как RelativeLayout, LinearLayout, GridLayout, ConstraintLayout и другие.

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


Иерархия визуальных компонентов

Большинство визуальных элементов, наследующихся от класса View, например кнопки или текстовые поля, находятся в пакете android.widget.


Три стратегии определения интерфейса

  1. Создание элементов управления программно в коде Java.

  2. Объявление элементов интерфейса в XML.

  3. Комбинированный подход: базовые элементы разметки определяются в XML, а остальные добавляются во время выполнения.

Начнем с первой стратегии — создания интерфейса в коде Java.


Создание интерфейса в коде Java

Создадим новый проект в Android Studio. В качестве шаблона выберем Empty Views Activity.

Назовем проект ViewsApp.

После создания проекта основными файлами для работы с визуальным интерфейсом будут:

  • MainActivity (Java-код активности).

  • activity_main.xml (разметка активности).


Пример: простой интерфейс

Определим в классе MainActivity простейший интерфейс:


Разбор кода

  1. Создание виджета:

    Конструктор виджета принимает контекст — объект android.content.Context, которым обычно является текущий класс MainActivity.

  2. Установка свойств:

    Методы, начинающиеся с set, позволяют настроить свойства виджета. Например, setText() задает текст, а setTextSize() — размер шрифта.

  3. Установка интерфейса:

    Метод setContentView() принимает объект View, который будет отображаться в интерфейсе.


Пример: более сложный интерфейс

Добавим TextView в контейнер ConstraintLayout:


Объяснение кода

  1. Создание LayoutParams:

    Устанавливается ширина и высота элемента. Константа WRAP_CONTENT означает, что размеры виджета зависят от его содержимого.

  2. Выравнивание элемента:

    Позиционирование относительно границ контейнера (PARENT_ID).

  3. Добавление элемента в контейнер:

  4. Установка интерфейса:


Общие этапы добавления элементов в контейнеры

  1. Создание объекта ViewGroup.LayoutParams и настройка его свойств.

  2. Передача объекта LayoutParams методу setLayoutParams() элемента.

  3. Добавление элемента в контейнер с помощью метода addView().

circle-info

Хотя интерфейс можно создавать программно, более оптимальным способом является использование XML-файлов для описания визуального интерфейса. Это позволяет отделить логику приложения (Java-код) от его интерфейса (XML-разметка). В следующей теме рассмотрим этот подход.

Last updated