Логотип Splash Screen отображается низкого качества - PullRequest
0 голосов
/ 02 июля 2018

Я создаю приложение для Android, которое имеет:

Заставка, на которой отображается логотип приложения

Что работает:

Экран отображается очень хорошо и переходит к FirstActivity по желанию, если я установил ImageView в макете для SplashScreenActivity.

Что не является:

Однако это неправильный подход, поскольку он вызывает задержку при запуске приложения, поскольку раздувается макет. Я использовал рекомендуемый подход следующим образом:

splash.xml

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

styles.xml

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

AndroidManifest.xml

<application
    android:theme="@style/Splash">
  • Когда я попытался установить src для растрового изображения из папки mipmap, получилось крошечное изображение.

  • Поскольку у меня также был SVG-файл логотипа, я попытался использовать Vector Asset для создать нарисованное, но растровое изображение src нуждается в изображении, и приложение упало.

  • Затем я попытался сгенерировать PNG из SVG, используя ImageMagick, InkScape и другие инструменты с их рекомендованными параметрами для высококачественных изображений.

Но он по-прежнему не такой острый, как использование ImageView с векторным объектом Drawable в качестве его источника, и, наконец, я не могу придумать другого пути сейчас.

Итак, как мне добиться такого же качества изображения, как и у всех других приложений? Также есть ли способ заставить растровое изображение использовать сам SVG?

1 Ответ

0 голосов
/ 02 июля 2018

Вы должны использовать вектор вместо PNG или JPG

чтобы использовать вектор в Android использовать

app:srcCompat="@drawable/logo"

и вам нужно добавить vectorDrawables.useSupportLibrary = true в build.gradle файл

 // Gradle Plugin 2.0+  
   android {  
   defaultConfig {  
   vectorDrawables.useSupportLibrary = true  
  }  
}  

для получения дополнительной информации и использования ОБРАТИТЕСЬ К: https://www.androidhive.info/2017/02/android-working-svg-vector-drawables/

...