J'ai du mal à appliquer un fond dégradé à un LinearLayout.
Cela devrait être relativement simple d'après ce que j'ai lu, mais cela ne semble tout simplement pas fonctionner. Pour référence, je développe sur 2.1-update1.
header_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:startColor="#FFFF0000"
android:endColor="#FF00FF00"
android:type="linear"/>
</shape>
main_header.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal"
android:background="@drawable/header_bg">
</LinearLayout>
Si je change @ drawable / header_bg en une couleur - par exemple # FF0000 cela fonctionne parfaitement bien. Suis-je en train de manquer quelque chose d'évident ici?
Réponses:
Ok, j'ai réussi à résoudre ce problème en utilisant un sélecteur. Voir le code ci-dessous:
main_header.xml:
main_header_selector.xml:
J'espère que cela aide quelqu'un qui a le même problème.
la source
Il est également possible d'avoir la troisième couleur (centre). Et différents types de formes.
Par exemple dans drawable / gradient.xml:
Cela vous donne du noir - gris - noir (de gauche à droite) qui est mon atmosphère de fond sombre préférée.
N'oubliez pas d'ajouter gradient.xml en arrière-plan dans votre mise en page xml:
Il est également possible de faire pivoter, avec:
vous donne une ligne verticale
et avec
vous donne une ligne horizontale
Les angles possibles sont:
Il existe également peu de formes différentes:
Forme arrondie:
et probablement un peu plus.
J'espère que ça aide, bravo!
la source
Dans un fichier dessinable XML:
Dans votre fichier de mise en page: android: background = "@ drawable / gradient_background"
la source
Essayez de supprimer android: gradientRadius = "90". En voici une qui fonctionne pour moi:
la source
Mon problème était que l'extension .xml n'a pas été ajoutée au nom de fichier du fichier XML nouvellement créé. L'ajout de l'extension .xml a résolu mon problème.
la source
Avec Kotlin, vous pouvez le faire en seulement 2 lignes
Modifier les valeurs de couleur dans le tableau
Résultat
la source
Je ne sais pas si cela aidera quelqu'un, mais mon problème était que j'essayais de définir le dégradé sur la propriété "src" d'une ImageView comme ceci:
Je ne sais pas à 100% pourquoi cela n'a pas fonctionné, mais maintenant je l'ai changé et j'ai mis le dessinable dans la propriété "background" du parent de ImageView, qui est un RelativeLayout dans mon cas, comme ceci: (cela a fonctionné avec succès)
la source
Je vérifierais votre canal alpha sur vos couleurs dégradées. Pour moi, lorsque je testais mon code, le canal alpha était mal réglé sur les couleurs et cela ne fonctionnait pas pour moi. Une fois que j'ai réglé le canal alpha, tout a fonctionné!
la source
Vous pouvez utiliser une vue personnalisée pour ce faire. Avec cette solution, c'est fini les formes dégradées de toutes les couleurs dans vos projets:
Je crée également un projet open source GradientView avec cette vue personnalisée:
https://github.com/lopspower/GradientView
la source