3
votes

La couleur du dégradé ne fonctionne pas correctement sur Android 10 (rotation de 90 degrés)

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:

fond dégradé 1

Mais sur les appareils équipés d' Android 10 il pivote de 90 degrés:

fond dégradé 2

Quelqu'un avait-il le même problème et savait-il comment le résoudre?


0 commentaires

3 Réponses :


0
votes

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>


1 commentaires

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 :)



7
votes

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.


0 commentaires

0
votes

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"


0 commentaires