Итак, я реализовал заставку с помощью атрибута 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 позволяет намного быстрее отображать заставку.