💀
Второй курс РПО
Android
Android
  • Глава 1. Начало работы с Android
    • Начало работы с Android
    • Первый проект в Android Studio
    • Создание графического интерфейса
  • Глава 2. Основы создания интерфейса
    • Основы создания интерфейса
    • Определение интерфейса в файле XML. Файлы layout
    • Определение размеров
    • Ширина и высота элементов
    • Внутренние и внешние отступы
    • ConstraintLayout
    • Размеры элементов в ConstraintLayout
    • Цепочки элементов в ConstraintLayout
    • Программное создание ConstraintLayout и позиционирование
Powered by GitBook
On this page
  • Отступы в Android
  • Внутренние отступы (Padding)
  • Атрибуты android:padding
  • Альтернативные атрибуты
  • Внешние отступы (Margin)
  • Программная установка отступов
  • Установка Padding
  • Установка Margin
  • Особенности
  1. Глава 2. Основы создания интерфейса

Внутренние и внешние отступы

16.01.2025

Отступы в Android

Параметры разметки позволяют задавать:

  • Внешние отступы (от границ элемента до границ контейнера).

  • Внутренние отступы (между границами элемента и его содержимым).


Внутренние отступы (Padding)

Атрибуты android:padding

  • android:padding — общий отступ для всех сторон.

  • Отдельные стороны:

    • android:paddingLeft

    • android:paddingRight

    • android:paddingTop

    • android:paddingBottom

Пример XML:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="50dp">
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:background="#e0e0e0"
        android:paddingTop="60dp"
        android:paddingLeft="40dp"
        android:paddingRight="40dp"
        android:paddingBottom="60dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Альтернативные атрибуты

  • android:paddingStart и android:paddingEnd — для языков с правосторонним направлением текста.


Внешние отступы (Margin)

Атрибуты android:layout_margin

  • Общий отступ: android:layout_margin.

  • Отдельные стороны:

    • android:layout_marginTop

    • android:layout_marginBottom

    • android:layout_marginLeft

    • android:layout_marginRight

Пример XML:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="60dp"
        android:text="Hello World!"
        android:background="#e0e0e0"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Программная установка отступов

Установка Padding

Метод setPadding(left, top, right, bottom).

Установка Margin

Для этого создается объект LayoutParams и вызывается метод setMargins(left, top, right, bottom).

Пример на Java:

ConstraintLayout constraintLayout = new ConstraintLayout(this);
TextView textView = new TextView(this);
textView.setText("Hello Android!");
textView.setTextSize(30);
textView.setBackgroundColor(0xFFE0E0E0);

// Преобразование dp в пиксели
int margin50inDp = (int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics());
int padding40inDp = (int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());

// Установка внешних отступов
ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(
    ConstraintLayout.LayoutParams.WRAP_CONTENT,
    ConstraintLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(margin50inDp, margin50inDp, margin50inDp, margin50inDp);
textView.setLayoutParams(layoutParams);

// Установка внутренних отступов
textView.setPadding(padding40inDp, padding40inDp, padding40inDp, padding40inDp);

constraintLayout.addView(textView);
setContentView(constraintLayout);

Особенности

  • setPadding() и setMargins() работают с пикселями.

  • Для использования dp выполняйте преобразование через TypedValue.

int valueInPixels = (int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, valueInDp, getResources().getDisplayMetrics());
PreviousШирина и высота элементовNextConstraintLayout

Last updated 4 months ago