Размер вертикального отступа между элементами – 20dp.
Решение:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#E7E4E4"android:text="Я занимаю ширину и высоту текста"android:textSize="20sp"/>
<TextViewandroid:layout_width="200dp"android:layout_height="100dp"android:background="#E7E4E4"android:layout_marginTop="20dp"android:text="Моя ширина - 200dp, а высота - 100dp"android:textSize="20sp"/>
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#E7E4E4"android:layout_marginTop="20dp"android:text="Я занимаю всю доступную ширину и высоту"android:textSize="20sp"/>
</LinearLayout>
Задание 2. Атрибуты padding, margin
Создайте три TextView, как указано на картинке:
Условия:
Размер текста у всех элементов – 20sp.
Фоновый цвет – #E7E4E4.
Отступ сверху и слева снаружи у каждого элемента – 10dp.
Отступ со всех сторон внутри элемента – 5dp.
Отступы слева снаружи элементов можно делать двумя способами:
Указывая атрибут android:layout_marginStartу всех элементов.
Указывая атрибут android:paddingStart у коренного контейнера. Получится, что он сделает отступ внутри себя слева. Т.к. все элементы будут находиться внутри него, то у них появится отступ относительно контейнера.
Задание 2.1
Вначале используйте атрибут android:layout_margin у всех элементов для задания отступов снаружи.
Удалите атрибуты android:layout_marginStart, и теперь используйте атрибут android:paddingStart у родительского элемента для задания отступов внутри него. Подумайте хорошенько, какие преимущества у такого варианта.
Представьте, что вы захотели изменить отступ слева с 10dp на 15dp. Теперь вам придётся поменять значение в одном месте android:paddingStart="15dp". В предыдущем варианте пришлось бы исправлять это в 3 местах. Запомните: лучше всего, когда при изменении чего-либо вы меняете это в одном месте. В следующих уроках мы познакомимся со стилями, которые позволят это сделать для остальных повторяющихся значений.
Задание 3. Атрибуты gravity, layout_gravity
Создайте три TextView, как указано на картинке:
Условия:
Размер текста у всех элементов – 20sp.
Фоновый цвет – #E7E4E4.
Размер вертикального отступа между элементами – 20dp.
Ширина нижнего элемента – 300dp.
Решение:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#E7E4E4"android:text="Текст справа"android:gravity="end"android:textSize="20sp"/>
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#E7E4E4"android:layout_marginTop="20dp"android:text="Элемент справа"android:layout_gravity="end"android:textSize="20sp"/>
<TextViewandroid:layout_width="300dp"android:layout_height="wrap_content"android:background="#E7E4E4"android:layout_marginTop="20dp"android:text="Элемент и текст в центре"android:layout_gravity="center_horizontal"android:gravity="center_horizontal"android:textSize="20sp"/>
</LinearLayout>
Задание 4.* Реальный макет
Заказчик сказал, что хочет, чтобы вы сделали ему макет экрана логина. Прислал такой шаблон:
На экране располагается два поля для ввода символов. Этот элемент называется EditText. Используйте атрибут android:hint для отображения текста вместо android:text. Этот атрибут отображает текст только, пока пользователь не ввёл ничего. И снизу находится кнопка.
Исходные данные:
Ширина кнопки и текстовых полей – 180 dp. Высота кнопки – 30dp, у текстовых полей – высота должна совпадать с высотой текста.
Текст для имени и пароля написан курсивом, его размер – 16sp. Текст кнопки написан толстым шрифтом, размер текста – 13sp.
Фоновый цвет экрана – #E7E4E4. Цвет текста у кнопки такой же, как фоновый цвет полей пользователя – белый (#FFF).
У поля Имя сверху отступ – 15dp, у поля Пароль сверху отступ, такой же как у кнопки – 5dp.
У текстовых полей должны быть отступы внутри элемента со всех сторон – 5dp.
Все элементы должны быть центрированы горизонтально относительно родительского контейнера. Подсказка: можете использовать атрибуты gravity у родительского контейнера или layout_gravity у самих элементов.
Решение:
Используя атрибут layout_gravity у всех элементов.
Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для
продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.
Для всех практических заданий в качестве коренного контейнера используйте
LinearLayout
, указанный ниже. А все виджеты добавляйте внутрь него:activity_main.xml
Задание 1. Атрибуты android:layout_width, android:layout_height
Создайте три
TextView
, как указано на картинке:Условия:
20sp
.#E7E4E4
.20dp
.activity_main.xml
Задание 2. Атрибуты padding, margin
Создайте три
TextView
, как указано на картинке:Условия:
20sp
.#E7E4E4
.10dp
.5dp
.Отступы слева снаружи элементов можно делать двумя способами:
android:layout_marginStart
у всех элементов.android:paddingStart
у коренного контейнера. Получится, что он сделает отступ внутри себя слева. Т.к. все элементы будут находиться внутри него, то у них появится отступ относительно контейнера.Задание 2.1
Вначале используйте атрибут
android:layout_margin
у всех элементов для задания отступов снаружи.activity_main.xml
Задание 2.2.
Удалите атрибуты
android:layout_marginStart
, и теперь используйте атрибутandroid:paddingStart
у родительского элемента для задания отступов внутри него. Подумайте хорошенько, какие преимущества у такого варианта.activity_main.xml
Представьте, что вы захотели изменить отступ слева с
10dp
на15dp
. Теперь вам придётся поменять значение в одном местеandroid:paddingStart="15dp"
. В предыдущем варианте пришлось бы исправлять это в 3 местах. Запомните: лучше всего, когда при изменении чего-либо вы меняете это в одном месте. В следующих уроках мы познакомимся со стилями, которые позволят это сделать для остальных повторяющихся значений.Задание 3. Атрибуты gravity, layout_gravity
Создайте три
TextView
, как указано на картинке:Условия:
20sp
.#E7E4E4
.20dp
.300dp
.activity_main.xml
Задание 4.* Реальный макет
Заказчик сказал, что хочет, чтобы вы сделали ему макет экрана логина. Прислал такой шаблон:
На экране располагается два поля для ввода символов. Этот элемент называется
EditText
. Используйте атрибутandroid:hint
для отображения текста вместоandroid:text
. Этот атрибут отображает текст только, пока пользователь не ввёл ничего. И снизу находится кнопка.Исходные данные:
180 dp
. Высота кнопки –30dp
, у текстовых полей – высота должна совпадать с высотой текста.16sp
. Текст кнопки написан толстым шрифтом, размер текста –13sp
.#E7E4E4
. Цвет текста у кнопки такой же, как фоновый цвет полей пользователя – белый (#FFF
).Имя
сверху отступ –15dp
, у поля Пароль сверху отступ, такой же как у кнопки –5dp
.5dp
.gravity
у родительского контейнера илиlayout_gravity
у самих элементов.Используя атрибут
layout_gravity
у всех элементов.activity_main.xml
Используя атрибут
gravity
у контейнера.activity_main.xml