В
вертикальной ориентации все отображается нормально, но если пе- ревести
устройство в
горизонтальную ориентацию, то не все элементы входят в рамки
экрана (рис. 5.9).
Рис. 5.8.
Экран приложения в вертикальной ориентации
Рис. 5.9.
Экран приложения в
горизонтальной ориентации
Для решения этой проблемы необходимо создать еще один layout-файл с
58
идентичным именем, который будет подготовлен специально под горизонтальную
ориентацию и в нашем случае выведет кнопки горизонтально. Для этого
необходимо выбрать квалификатор Orientation (рис. 5.10).
Рис. 5.10.
Создание
layout-файла с квантификатором
Выбрать Screenorientation = Landscape (рис. 5.11),
так же изменится
директория на layout-land.
Рис. 5.11.
Выбор ориентации экрана
59
Структура проекта с отображаемыми папками и ресурсами представ- лена
под разные разрешения экрана (рис. 5.12).
Рис. 5.12.
Структура папки ресурсов
Далее необходимо добавить четыре кнопки во вложенном LinearLayout,
только параметр ориентации следует указать как «горизонтальный» (рис.5.13).
Рис. 5.13.
Файл
new_layout.xml
для
горизонтальной
ориентации
60
Activity читает layout-файл, который мы указывали в методе setContentView,
т.е. new-layout.xml, и отображает его содержимое. При работе приложения
учитывается ориентация устройства, и в случае
горизонтальной ориентации
используется файл new-layout.xml из папки res/layout- land. Запустив приложение,
получаем результат (рис. 5.14).
Рис. 5.14.
Экран приложения в горизонтальной ориентации
Создавая layout-файл с альтернативной разметкой
для горизонтальной
ориентации экрана, необходимо использовать те же компоненты, которые
используются в разметке для портретной ориентации. Если не добавить какой-либо
элемент, то в портретной ориентации
приложение будет работать, а в
горизонтальной закроется с ошибкой.
Вопросы:
1.
В каком каталоге приложения хранятся файлы ресурсов? Укажите
полныйпуть.
2.
Какое отличие имеет элемент
от
элемента?
61
3.
Какие действия в программе необходимо предусмотреть при смене
ориентацииэкрана?
4.
Можно ли иметь разные типы разметок в зависимости от разрешения
устройства? Чем этообеспечивается?
Достарыңызбен бөлісу: