Je veux créer un fond dégradé où le dégradé est dans la moitié supérieure et où il y a une couleur solide dans la moitié inférieure, comme dans l'image ci-dessous :
![][1]
Je ne peux pas car la centerColor
s'étend pour couvrir le haut et le bas.
Dans le gradient du bouton, une ligne horizontale blanche s'estompe sur le bleu vers le haut et le bas.
Comment puis-je faire un fond comme la première image ? Comment puis-je créer une petite centerColor
qui ne s'étale pas ?
[1] : http://i.stack.imgur.com/Woq2z.jpg [2] : http://i.stack.imgur.com/bbo6D.jpg
Voici le code dans le XML du bouton d'arrière-plan ci-dessus.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:startColor="#6586F0"
android:centerColor="#D6D6D6"
android:endColor="#4B6CD6"
android:angle="90"/>
<corners
android:radius="0dp"/>
</shape>
Vous pouvez créer cet aspect "demi-gradé" en utilisant une [liste de calques][1] xml pour combiner les "bandes" supérieure et inférieure dans un seul fichier. Chaque bande est une forme xml.
Voir cette réponse précédente sur SO pour un tutoriel détaillé : [Formes à dégradés multiples][2].
[1] : http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList [2] : https://stackoverflow.com/questions/4381033/multi-gradient-shapes
Vous devez d'abord créer un gradient.xml comme suit
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
Ensuite, vous devez mentionner le gradient ci-dessus dans l'arrière-plan du layout, comme suit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient"
>
</LinearLayout>
Pourquoi ne pas créer une image ou une image 9 Patch et l'utiliser ?
Le lien ci-dessous contient un guide pratique sur la façon de procéder :
[http://android.amberfog.com/?p=247][1]
Si vous tenez absolument à utiliser une forme, essayez le site ci-dessous (sélectionnez Android en bas à gauche) : [http://angrytools.com/gradient/][2]
J'ai créé un dégradé similaire (pas exact) à celui que vous avez sur ce lien : http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269
[1] : http://android.amberfog.com/?p=247 [2] : http://angrytools.com/gradient/