Quiero crear un fondo degradado donde el degradado está en la mitad superior y hay un color sólido en la mitad inferior, como en esta imagen de abajo:
No puedo porque el centerColor
se extiende para cubrir la parte inferior y superior.
En el gradiente para el botón, una línea horizontal blanca se desvanece sobre el azul hacia la parte superior y el fondo]2.
¿Cómo puedo hacer un fondo como el de la primera imagen? ¿Cómo puedo hacer un pequeño centerColor
que no se extienda?
Este es el código en XML del botón de fondo de arriba.
<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>
Puede crear este aspecto de 'medio degradado' utilizando una Lista de capas xml para combinar las 'bandas' superiores e inferiores en un solo archivo. Cada banda es una forma xml.
Ver esta respuesta anterior en SO para un tutorial detallado: Formas multigradientes.
Primero hay que crear un gradient.xml de la siguiente manera
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
A continuación, debe mencionar el gradiente anterior en el fondo del diseño, de la siguiente manera
<?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>
¿Por qué no crear una imagen o una imagen de 9 parches y utilizarla?
El siguiente enlace tiene una buena guía sobre cómo hacerlo:
http://android.amberfog.com/?p=247
Si insiste en usar un Shape, pruebe el sitio de abajo (Seleccione Android en la parte inferior izquierda): http://angrytools.com/gradient/
He creado un gradiente similar (no exacto) al que tienes en este enlace: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269