Разметка макетов Activity пишется на языке XML, в языке XML используются теги и атрибуты дополняющие теги различными параметрами. Например:
<TextView android:layout_width="100dp"/> добавляет виджет TextView и устанавливает в качестве его атрибута ширины значение 100dp (100 пикселей). Тут TextView это название тега а android:layout_width это атрибут тега TextView.
Пространства имен
В макетах XML используются пространства имён, которые пишутся до их использования внутри корневого тега макета, пишутся как атрибут xmlns:android="http://schemas.android.com/apk/res/android". xmlns: означает объявление пространства имён (XML namespace), android это название префикса который применяется к атрибутам виджетов.
Виджеты наследуют класс View от которого получают основные атрибуты и дополняют своими. Например у всех виджетов должны быть указаны атрибуты layout_width и layout_height, потому что операционная система должна знать какой размер виджетов для правильного расположения их в контейнере.
Значения атрибутов указываются так: android:layout_width="wrap_content"
android:id - устанавливает уникальный идентификатор для использования виджета через код Java (View v = findViewById(R.id.myid)) или адресации внутри макета (например при использовании ConstraintLayout). При установлении значения id используется @+id/myid, при использовании id другого объекта используется @id/myid, знак + при использовании уже установленного id не используется. Например app:layout_constraintRight_toRightOf="@id/myid"
android:layout_width - обязательный атрибут для установки ширины виджета
android:layout_height - обязательный атрибут для установки высоты виджета Для атрибутов android:layout_width и android:layout_height можно установить значения wrap_content, match_parent, 100dp, 200dp.
android:layout_margin - устанавливает одинаковый внешний отступ (пустое пространство) со всех сторон блока относительно других блоков или родительского контейнера. Значения можно указать в dp. android:layout_marginLeft, android:layout_marginRight, android:layout_marginTop, android:layout_marginBottom - устанавливают внешний отступ с указанной стороны. Слева, справа, сверху, снизу соответственно.
android:padding - устанавливает внутренний отступ со всех сторон, разница заметна при установке фона для виджета, потому что при использовании данного атрибута пустое пространство добавляется внутри рамки виджета а внешние стороны рамки остаются прижатыми к соседним объектам или сторонам родительского контейнера.android:paddingLeft, android:paddingRight, android:paddingTop, android:paddingBottom - устанавливает внутренний отступ с указанной стороны.
android:layout_gravity - выравнивание внутри родительского контейнера. Работает, если родительский контейнер не использует авторасположение дочерних объектов как LinearLayout, ConstraintLayout. Работает горизонтальное выравнивание виджета при использовании внутри LinearLayout с вертикальной ориентацией и вертикальное выравнивание использовании внутри LinearLayout с горизонтальной ориентацией. Работает по обеим осям например в контейнере FrameLayout. Если контейнер использует авторасположение дочерних объектов можно установить атрибут android:gravity с необходимым значением в родительском объекте. Например:
android:gravity - выравнивание содержимого (текста или дочерних объектов)
Допустимые значения для layout_gravity и gravity:
android:background - устанавливает цвет фона виджета. Значениями могут быть значения цветов в шестнадцатеричной системе (0 до F) указываемых после # или значения хранящиеся в файле colors.xml в папке res/values. Допустимо указывать android:background="#00FF0000"или android:background="@color/colorPrimary" Подробней о цветах внизу.
Для указывания цвета используется 4 канала: альфа (прозрачность), красный, зеленый, синий или 3 канала: красный, зеленый, синий. Можно указывать 3, 4, 6, 8 символов. Смешивая три цвета образуем необходимый цвет. Каждая группа может иметь по 2 символа от 00 до FF при использовании 6-и и 8-ми значных значений цвета и по 1 символу 0 до F при использовании 3-х или 4-х значных значений цвета.
Реклама