Je suis tombé sur le même problème.
Malheureusement, il ne semble pas être une possibilité de faire de l'écran de démarrage de travail avec juste un vecteur dessiné pour le pré API 23.
Le problème est que vous ne pouvez pas charger VectorDrawableCompat à l'extérieur du processus, ce qui est le cas dans vos thèmes android:windowBackground. Donc, ce qui est probablement ce qui se passe ici est que sur des API 21 le Vecteur est converti en PNG pour être compatible. Ainsi, dans l' <layered-list>
le convertir en PNG, est inséré dans l' <item>
élément, ce qui provoque l'image bitmap à l'étirement de tous les bords, car il manque l' <bitmap>
élément.
Donc ma solution est la suivante:
Créer un drawable_splashscreen.xml
dans le dossier drawables-v23
qui ressemble à celui-ci pour le vecteur dessiné
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="?attr/colorPrimary"/>
<item android:drawable="@drawable/ic_splashscreen" android:gravity="center"/>
</layer-list>
Ensuite créer un autre drawable_splashscreen.xml
, mais à l'intérieur de l'ordinaire drawables
le dossier
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="?attr/colorPrimary"/>
<item>
<bitmap android:drawable="@drawable/ic_splashscreen" android:gravity="center"/>
</item>
</layer-list>
Avis de l' <bitmap>
élément. Alors maintenant, quand le PNG est utilisé sur la pré API 23 appareils, il sera affiché correctement et de ne pas être étendu à l'ensemble de l'arrière-plan. Malheureusement, vous devez également fournir de l'écran de démarrage comme le format PNG pour que cela fonctionne dans l'ancienne Api. Mais pour tous les appareils avec l'API 23+ le vecteur dessinés sera utilisé.
L'espoir que j'ai cette réponse peut aider quelqu'un qui est en cours d'exécution dans la même question!