Телефонуйте » (+38) 096 227 41 41


Android-пристрої класифікуються за екранами, використовуючи два загальних параметри: розмір і роздільний дозвіл. Ви повинні бути готові до того, що ваш додаток буде встановлений на пристроях з екранами, які варіюються за розміром і роздільним дозволом.

Таким чином, ви повинні додати деякі альтернативні ресурси, які будуть оптимізувати вигляд вашого додатку для різних розмірів екрану і роздільного дозволу.

• Розрізняють чотири узагальнені розміри: маленький, нормальний, великий, супер великий (xlarge)
• І чотири узагальнені роздільні дозволи: низький (ldpi), середній (mdpi), високий (hdpi), надвисокий (xhdpi)

Щоб задекларувати різні макети і растрові зображення, які хочете використовувати для різних екранів, ви повинні розмістити ці альтернативні ресурси в окремих каталогах, подібно до того, як робите для рядків на різних мовах.
Також пам'ятайте, що орієнтація екрану (портрет або альбом) вважається зміною розміру екрану, тому багато додатків повинні переглянути компоновку для оптимізації роботи користувача в кожній орієнтації.

Створення різних макетів

Для оптимізації роботи користувачів на різних розмірах екрану, ви повинні створити унікальний XML-файл макету для кожного розміру екрану, який хочете підтримувати. Кожен макет повинен бути збережений в каталозі відповідного ресурсу, названий з суфіксом -<screen_size>. Наприклад, унікальне розташування на великих екранах повинне бути збережене в 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 використовується для портретної орієнтації.
Якщо хочете забезпечити спеціальне оформлення для ландшафтного (альбомного) вигляду, в тому числі на великих екранах, то вам потрібно використовувати як large так і land визначники:
MyProject/
    res/
        layout/              # за замовчуванням (портретна орієнтація)
            main.xml
        layout-land/         # альбомна орієнтація
            main.xml
        layout-large/        # великий екран (портретна орієнтація)
            main.xml
        layout-large-land/   # великий екран і альбомна орієнтація
            main.xml

Примітка: Android 3.2 і вище підтримують вдосконалений метод визначення розмірів екрану, що дозволяє вам вказати ресурси для розмірів екрану на основі мінімальної ширини і висоти в плані пікселів незалежного роздільного дозволу. Для отримання більш детальної інформації ознайомтесь Designing for Multiple Screens.

Створення різних растрових зображень

Ви повинні завжди забезпечити растрові ресурси, які належним чином масштабуються згідно узагальненого роздільного дозволу: низького, середнього, високого і дуже високого. Це допоможе вам добитися хорошої якості графіки і продуктивності на всіх роздільних дозволах екрану.

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

·    xhdpi: 2.0
·    hdpi: 1.5
·    mdpi: 1.0 (базовий)
·    ldpi: 0.75

Це означає, що якщо ви створюєте зображення 200x200 для xhdpi пристроїв, то повинні згенерувати той же ресурс в 150x150 пікселів для hdpi, 100x100 для mdpi і 75x75 для ldpi пристроїв.
Потім помістіть файли у відповідні каталоги графічних ресурсів:
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

Кожен раз, коли посилаєтеся @drawable/awesomeimage, система вибирає відповідний растровий малюнок, заснований на роздільному дозволі екрану.

Примітка: Ресурси низького роздільного дозволу (ldpi) не завжди необхідні. Коли надаєте hdpi, система масштабує їх на одній половині, що належним чином підходить для екранів ldpi.

Джерело: developer.android.com

Новини

  • Модуль SMARC запускає Android або Linux на Snapdragon 820
    Модуль SMARC запускає Android або Linux на Snapdragon 820

    SMART 2.0 "Snapdragon 820 SOM" iWave має 3 Гб LPDDR4, 32 Гб eMMC, Wi-Fi та Bluetooth, а також вхідні/вихідні виводи, включаючи GbE, HDMI 2.0, MIPI-CSI, USB 3.0 та PCIe. Комп'ютер розміром 82x50 мм працює на ОС Android Snailbone або вище, з наступною підтримкою Linux. Snapdragon 820 об'єднує чотири 14-нм Cortex з технологією FinFET - два на частоті 2,15 ГГц, а два з 1,6 ГГц, які намагаються імітувати високоякісні Cortex-A72. Крім того, SoC оснащений 624 МГц Adreno 530 GPU, Hexagon 680 DSP і 14-розрядним ISP для Spectra. Snapdragon 820 SOM підтримує кодування H.265 4K@60 та кодування 4K@30.

    in Новини

Записатися на курс