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"