J'ai appliqué une ressource dessinable en dégradé comme arrière-plan d'une vue.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp" />
<gradient
android:startColor="#cf2aff"
android:endColor="#5409ff"
android:type="linear" />
</shape>
Sur les appareils avec la Android version < 10 il s'affiche comme prévu:
Mais sur les appareils équipés d' Android 10 il pivote de 90 degrés:
Quelqu'un avait-il le même problème et savait-il comment le résoudre?
3 Réponses :
Avez-vous essayé de régler l'angle à 180 degrés? Comme ça:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp" />
<gradient
android:angle="180"
android:startColor="#cf2aff"
android:endColor="#5409ff"
android:type="linear" />
</shape>
Réglez l'angle à 180 affichera l'arrière-plan dégradé inversé pour toutes les versions d'Android. Mais j'ai réalisé que si vous le définissez sur 0, le dégradé s'affiche correctement pour Android 10 :)
Ajouter android:angle="0"
J'ai une solution pour ça. Vous devez définir l'attribut android:angle même s'il est égal à 0 pour le faire fonctionner sur Android 10 .
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp" />
<gradient
android:angle="0"
android:startColor="#cf2aff"
android:endColor="#5409ff"
android:type="linear" />
</shape>
Je suppose que pour Android 10, l'angle est défini sur 90 degrés par défaut.
Juste un ajout: j'ai remarqué que les angles négatifs sont ignorés sur certains appareils. Utilisez donc toujours des nombres positifs entre 0 et 360 lors du réglage de l'angle!
par exemple: au lieu de
android:angle="315"
utilisation
android:angle="-45"