Voglio creare uno sfondo a gradiente dove il gradiente è nella metà superiore e c'è un colore solido nella metà inferiore, come in questa immagine qui sotto:
Non posso perché il centerColor
si espande fino a coprire il fondo e la parte superiore.
Nel gradiente del pulsante, una linea orizzontale bianca sfuma sul blu verso l'alto e il basso]2.
Come posso fare uno sfondo come la prima immagine? Come posso fare un piccolo centerColor
che non si estende?
Questo è il codice in XML del pulsante di sfondo sopra.
<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>
Puoi creare questo 'half-gradient' look usando un xml Layer-List per combinare le 'bande' superiori e inferiori in un unico file. Ogni banda è una forma xml.
Vedi questa risposta precedente su SO per un tutorial dettagliato: Forme multigradiente.
Prima devi creare un gradient.xml come segue
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
Poi è necessario menzionare il gradiente di cui sopra sullo sfondo del layout, come segue
<?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>
Perché non creare un'immagine o un'immagine 9 Patch e usare quella?
Il link qui sotto ha una bella guida su come farlo:
http://android.amberfog.com/?p=247
Se insisti nell'usare uno Shape, prova il sito qui sotto (Seleziona Android in basso a sinistra): http://angrytools.com/gradient/
Io'ho creato un gradiente simile (non esatto) a quello che hai a questo link: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269