Я в основном использую следующие xml для Android Spla sh Экран : пустое действие с windowBackground
:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
background_splash.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/defaultBackground" />
</item>
<item>
<bitmap
android:src="@drawable/logo"
android:tileMode="disabled"
android:gravity="center"/>
</item>
</layer-list>
Это прекрасно работает, если logo.png
меньше размера экрана. Если logo.png
больше экрана, он выходит за пределы экрана.
Я вижу 3 обходных пути, но у всех есть недостатки:
- Установка
left
/ right
в <item
, но для этого требуется API 23 + - Варьируется
@drawable/logo
для xhdpi
, xxhdpi
и c. но я использую Density Split, который сломал бы его при повторном использовании apk для других устройств (apk sites, «Move to new device» - приложения, передающие apks et c.) - Использовать макет с
ImageView
, но с заметной задержкой
Как это сделать правильно / без недостатков?