Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Поддержка разных разрешений
Мир устройств Android очень сильно фрагментирован, здесь встречаются как гаджеты с небольшим экраном, так и большие широкоэкранные телевизоры. И бывают случаи, когда надо ограничить использование приложения для определенных разрешений экранов. Для этого в файле манифеста определяется элемент < supports-screens>: <? xml version=" 1.0" encoding=" utf-8"? > < manifest xmlns: android=" http: //schemas.android.com/apk/res/android" package=" com.example.eugene.viewsapplication" /> < supports-screens android: largeScreens=" true" android: normalScreens=" true" android: smallScreens=" false" android: xlargeScreens=" true" /> <! -- остальное содержимое--> < /manifest>Данный элемент принимает четыре атрибута: · android: largeScreens - экраны с диагональю от 4.5 до 10" · android: normalScreens - экраны с диагональю от 3 до 4.5" · android: smallScreens - экраны с диагональю меньше 3" · android: xlargeScreens - экраны с диагональю больше 10" Если атрибут имеет значение true, то приложение будет поддерживаться соответствующим размером экрана Запрет на изменение ориентации Приложение в зависимости от положения гаджета может находиться в альбомной и портретной ориентации. Не всегда это бывает удобно. Мы можем сделать, чтобы приложение вне зависимости от поворота гаджета использовало только одну ориентацию. Для этого в файле манифеста у требуемой activity надо установить атрибут android: screenOrientation. Например, запретим альбомную ориентацию: <? xml version=" 1.0" encoding=" utf-8"? > < manifest xmlns: android=" http: //schemas.android.com/apk/res/android" package=" com.example.eugene.viewsapplication" > < application android: allowBackup=" true" android: icon=" @mipmap/ic_launcher" android: label=" @string/app_name" android: theme=" @style/AppTheme" > < activity android: screenOrientation=" portrait" <! -- остальное содержимое-->Значение android: screenOrientation=" portrait" указывает, что данная activity будет находиться только в портретной ориентации. Если же надо установить только альбомную ориентацию, тогда надо использовать значение android: screenOrientation=" landscape" Intent и Intent-фильтры Для взаимодействия между различными объектами activity ключевым классом является android.content.Intent. Он представляет собой задачу, которую надо выполнить приложению. Для работы с Intent добавим новый класс Activity. Для этого нажмем правой кнопкой мыши в папку, в которой находится класс MainActivity, и затем в контекстном меню выберем New-> Activity-> Empty Activity: Новый класс Activity назовем SecondActivity, а файл его разметки интерфейса - activity_second: И после этого в проект будет добавлена новая Activity - SecondActivity: После этого в файле манифеста AndroidManifest.xml мы сможем найти следующие строки:
Все используемые классы activity должны быть описаны в файле AndroidManifest.xml с помощью элемента < activity>. Каждый подобный элемент содержит как минимум один атрибут android: name, который устанавливает имя класса activity. Однако по сути activity - это стандартные классы java, которые наследуются от класса Activity или его наследников. Поэтому вместо встроенных шаблонов в Android Studio можем добавлять обычные классы, и затем их наследовать от класса Activity. Однако в этом случае нужно будет вручную добавлять в файл манифеста данные об activity. Причем для MainActivity в элементе intent-filter определяется интент-фильтр. В нем элемент action значение " android.intent.action.MAIN" представляет главную точку входа в приложение. То есть MainActivity остается основной и запускается приложением по умолчанию. Для SecondActivity просто указано, что она в проекте, и никаких intent-фильтров для нее не задано. Чтобы из MainActivity запустить SecondActivity, надо вызвать метод startActivity():
В качестве параметра в метод startActivity передается объект Intent. Для своего создания Intent в конструкторе принимает два параметра: action (выполняемое действие или задача) и data (передаваемые в задачу данные). В качестве параметра action может выступать множество возможных действий. В данном случае используется действие ACTION_MAIN, которое задается константой " android.intent.action.MAIN". Теперь рассмотрим реализацию перехода от одной Activity к другой. Для этого в файле activity_main.xml (то есть в интерфейсе для MainActivity) определим кнопку:
И определим для кнопки в классе MainActivity обработчик нажатия, по которому будет производиться переход к новой Activity:
В обработчике нажатия будет запускаться SecondActivity. Далее изменим код SecondActivity:
Запустим приложение и перейдем от одной Activity к другой: |
Последнее изменение этой страницы: 2019-05-04; Просмотров: 283; Нарушение авторского права страницы