Реализация заставки на устройствах разной высоты - PullRequest
0 голосов
/ 03 января 2019

Итак, я реализовал заставку с помощью атрибута android:windowBackground.По сути, у меня есть стиль для моего LoginActivity (первый экран, который появляется в приложении)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyLoginTheme" parent="MyAppTheme">
        <item name="android:windowBackground">@drawable/drawable_login_background</item>
    </style>
</resources>

И у меня есть этот нарисованный drawable_login_background, который в основном представляет собой список слоев с изображением исинее наложение:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap android:src="@drawable/ic_login_background_xhdpi"/>
    </item>
    <item>
        <color android:color="@color/blueOverlay"/>
    </item>
</layer-list>

На моем Samsung J7 выглядит идеально (h1280xw720, xhdpi), но на моем Moto G Play выглядит несколько иначе (h1400x720, xhdpi).Дело в том, что оба устройства имеют формат xhdpi, поэтому я не могу использовать папку drawable для выбора разных drawables с разными размерами.

Есть ли способ, которым я могу выбрать различные элементы рисования, основанные только на высоте?

Примечание

Обратите внимание, что атрибут windowsBackground принимает отрисовкунекоторые люди упоминали, что используют папки макетов layout-swWIDTH-shHEIGHT, но эти папки предназначены для загрузки разных макетов в зависимости от высоты и размера экрана.Я не использую windowsBackground просто для того, чтобы использовать его, настройка стиля приложения с помощью windowsBackground позволяет намного быстрее отображать заставку.

1 Ответ

0 голосов
/ 05 января 2019

Простое решение, в итоге я перетащил чертеж для моего Samsung 1280x720 в папку drawable, а мой большой чертеж для моего Moto G Play 1440x720 в drawable-large. Я думаю, что если вы хотите провести различие между xhdpi, hdpi и т. Д., Вам просто нужно добавить классификатор в конец.

Я так и не понял, что если вы щелкнете правой кнопкой мыши в папке res на Android Studio и нажмете Create new Resource Directory, вы можете выбрать квалификаторы слева, которые вы хотите сопоставить, и создать для вас имя каталога.

...