Android Spla sh Экран растянут - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь создать экран spla sh, используя , это руководство , используя дополнительную тему. Это моя тема запуска в styles.xml:

    <style name="AppTheme.Launcher" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="android:windowBackground">@drawable/ic_launch_screen</item>
        <item name="colorPrimaryDark">@color/color_white</item>
    </style>

Это файл ic_launch_screen.xml:

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

Файл ic_splash_screen уже является файлом из 9 патчей и выглядит как это:

enter image description here

В предварительном просмотре с 9 патчами в Android Studio показано, что при растяжении логотипы не будут изменяться в размере и будут выглядеть идеально

Тем не менее, когда я использую его в этой комбинации, экран spla sh выглядит растянутым на моих Huawei и Samsung, но не на эмуляторе pixel 2: Huawei Mate 10 Pro и Samsung Galaxy s9 + (они растягивается так же):

enter image description here

На эмуляторе это выглядит идеально так:

enter image description here

Проблема не из-за системной навигации. Это все еще выглядит растянуто на Huawei, когда я использую три клавиши навигации, как в эмуляторе.

Я уже пробовал играть в ic_launch_screen.xml с использованием <nine-patch> элементов или атрибута gravity:center, но это выглядит тогда еще больше запутано.

Ответы [ 2 ]

1 голос
/ 22 января 2020

Я не уверен, почему 9 патч не масштабируется, но я могу предложить обходной путь. Вы можете создать 2 рисованных объекта: первый с текстом pass13 и другой с lo go. Теперь вы можете создать следующий список слоев:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/color_white" />
    <item>
        <bitmap
            android:gravity="center" 
            android:src="@drawable/drawable1" />
    </item>
    <item>
        <bitmap
            android:gravity="center|bottom" 
            android:src="@drawable/drawable2" />
    </item>
</layer-list>

Теперь он должен хорошо масштабироваться.

0 голосов
/ 22 января 2020

Можете ли вы попробовать это,

Файл манифеста,

<style name="Splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
</style>

Drawable File,

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <item android:drawable="@color/splash" />
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_splash_logo" />
    </item>
</layer-list>
...