2.2. Поддержка различных экранов AndroidStudio

Android разделяет экраны устройств по двух характеристикам: размер (size) и плотность (density). Стоит ожидать, что ваше приложение может быть установлено на устройствах с различными значениями этих параметров. Поэтому вы должны включить в ваш проект некоторые ресурсы, которые оптимизируют внешний вид вашего приложения для разных размеров экрана и плотности пикселей.

Существует четыре обобщенных размера: маленький (small), нормальный (normal), большой (large), супербольшой (xlarge)
И четыре обобщенные плотности: низкая (ldpi), средняя (mdpi), высокая (hdpi), сверхвысокая (xhdpi)
Чтобы объявить разные макеты и растровые изображения, которые вы будете использовать для разных экранов, вы должны поместить эти отдельные ресурсы в отдельных каталогах, подобно тому, как это делали разных языковых строк в предыдущем уроке.

Также имейте в виду, что ориентация экранов (пейзаж landscape или портрет portrait) тоже считается изменением размера экрана, поэтому необходимо пересмотреть свой макет, чтобы оптимизировать работу пользователя в каждой ориентации, создав так же отдельные ресурсы для каждого вида ориентации.

 

Создание различных макетов

Чтобы оптимизировать работу пользователя на разных размерах экрана, вы должны создать уникальный XML-файл макета для каждого размера экрана, который вы хотите поддерживать. Каждый макет должен быть сохранен в соответствующий каталог ресурсов, названный с суффиксом -. Например, уникальный макет для больших экранов должен быть сохранен в каталогеres/layout-large/.

Примечание. Android автоматически масштабирует ваш макет, чтобы правильно подстроиться под размер экрана. Таким образом, в макете не нужно указывать абсолютные размеры элементов пользовательского интерфейса. Вместо этого нужно сосредоточиться на структуре макета, которая влияет на работу пользователя (например, размер или положение важных представлений относительно друг друга).

Например, этот проект включает макет по умолчанию и альтернативный макет для больших экранов:

MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml

Имена файлов должны быть одинаковыми, но их содержимое отличается тем, что обеспечивает оптимизированный интерфейс для соответствующего размера экрана.

Просто укажите файл макета в своем приложении, как обычно:

@Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
}

Примечание. Система загружает файл макета из соответствующего каталога макета на основе размера экрана устройства, на котором работает ваше приложение. Дополнительная информация о том, как Android выбирает соответствующий ресурс, содержится в руководстве «Предоставление ресурсов» (Providing Resources).

В качестве другого примера, вот проект с альтернативным макетом для горизонтальной ориентации:

MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml

По умолчанию файл layout/main.xml используется для портретной (вертикальной) ориентации.

Если вы хотите создать особый макет для горизонтальной/вертикальной и нормальному/большому размеру экрана, вам нужно использовать оба классификатора:

MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml

Примечание. Android 3.2 и выше поддерживает расширенный метод определения размеров экрана, который позволяет указать ресурсы для размеров экрана, основанные на минимальной ширине и высоте с точки зрения плотности пикселей. Этот урок не охватывает новую технику. Для получения дополнительной информации прочитайте «Проектирование для нескольких экранов» (Designing for Multiple Screens).

Создание различных растровых изображений

Нужно понимать, что изображения, которые вы используете в проекте, будут отображаться на экранах с различной плотностью пикселей: низкой, средней, ​​высокой и сверхвысокой. Если это знать, и использовать , то можно достичь хороших показателей графического качества и производительности при всех плотностях экрана.

Чтобы сгенерировать изображения, вы должны начать с вашего исходного изображения в векторном формате и создать изображения для каждой плотности с использованием следующей шкалы размеров:

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline базовый уровень)
  • ldpi: 0.75

Это означает, что если вы создаете изображение 200×200 для устройств xhdpi, вы должны создать то же изображение в 150×150 для hdpi, 100×100 для mdpi и 75×75 для устройств ldpi.

Затем поместите файлы в соответствующий каталог ресурса:

MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

Каждый раз, когда вы ссылаетесь на  @drawable/awesomeimage, система выбирает подходящее растровое изображение, основанное на плотности экрана.

Примечание. Ресурсы низкой плотности (ldpi) далеко не всегда необходимы. Когда вы создаете hdpi, система масштабирует их на 0.5, чтобы правильно подогнать под экраны ldpi.

Еще больше чтива на английском по теме по ссылке: Iconography design guide.

You may also like...

5 комментариев

  1. Viagra Online No Prescription buy viagra online Buy 5mg Cialis Online Can I Purchase Tab Secure Ordering Provera Shipped Ups

  2. Tomar Cialis Todos Los Dias Cialis Generique Comparer Prix cialis Propecia Tablets Buy To Buy Tadalis Sx Soft

  3. Moltrin 800 For Sale cialis tablets for sale Diflucan On Amazon Otc Provera Clomid

  4. Canadian Pharmacy No Presc realcheaplevitra Buy Generic Effexor Xr Online Where To Purchase Chat Lagyl Levitra Medicina

  5. Doxycycline And Dosing With Cephalexin cialis Doxycycline Amoxicillin Sinus Australia

Добавить комментарий

Ваш e-mail не будет опубликован.

Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.
Регистрация не требуется. В качестве логина укажите рабочую почту, в качестве пароля - пароль от компьютера.