Экран-заставка иногда искажается и размывается

#android #android-layout #android-theme #android-styles

#Android #android-макет #android-тема #android-стили

Вопрос:

У меня есть действие на экране-заставке со следующей темой:

 <style name="AppTheme.Launcher"  parent="Theme.AppCompat.NoActionBar">
        <item name="android:background">@drawable/splash_theme</item>
</style>
  

Вот часть моего манифеста:

  <activity
        android:name=".activities.SplashActivity"
        android:theme="@style/AppTheme.Launcher">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
  

И вот мой чертеж:

 <?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/colorPrimaryDarkBackground" />


    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/shelpwelt_theme" />
    </item>


</layer-list>
  

В некоторых сборках все работает отлично, но иногда экран-заставка полностью искажается и размывается, но только в первые 2-3 секунды. Затем, когда моя активность на экране-заставке достигает onCreate , тема выглядит совершенно нормально.

Вот в чем проблема: Вот в чем проблема

Ответ №1:

В этом случае вы используете gif-файл. И по истечении указанного вами времени, 2-3 секунд, он изменяет размер экрана, поэтому изображение становится больше. Вот почему он становится размытым на экране.

Ответ №2:

Добавьте bottom , left , right top размер к вашему элементу.

Измените ваш drawble-файл на этот :

    <?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/colorPrimaryDarkBackground" />


<item
    android:bottom="24dp"
    android:left="24dp"
    android:right="24dp"
    android:top="24dp"
    >
    <bitmap
        android:gravity="center"
        android:src="@drawable/shelpwelt_theme" />
</item>


</layer-list>
  

Ответ №3:

Возможно, это проблема с масштабированием. попробуйте изменить макет заставки, вместо того чтобы создавать все изображение целиком и устанавливать его в качестве фона, создайте свой макет так, чтобы в нем было два изображения: одно для серого прямоугольника, а другое для значка видео