#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:
Возможно, это проблема с масштабированием. попробуйте изменить макет заставки, вместо того чтобы создавать все изображение целиком и устанавливать его в качестве фона, создайте свой макет так, чтобы в нем было два изображения: одно для серого прямоугольника, а другое для значка видео