trapezoid - Cómo usar Android GradientDrawable
shape size android (3)
Daré la misma respuesta que Praveen , pero también trataré de explicar la configuración.
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="linear"
android:angle="-90"
android:startColor="#7c0000"
android:endColor="#A71C1C" />
</shape>
android: tipo
Hay 3 tipos de gradientes, el predeterminado y el de esta pregunta es "lineal". Los otros 2 son "radial" y "barrido".
Android: ángulo
Rotación en sentido antihorario del gradiente, donde 0 es | iniciar color -> finalizar color | (horizontalmente).
Android: startColor
Color a partir del cual comienza el gradiente, el inicio se define por la rotación.
android: endColor
Colorea el final del degradado, el final se define por la rotación.
Android: centerColor
También puede haber un color entre el color inicial y final, si se desea.
Intento usar GradientDrawable para establecer un degradado en algunos fondos y botones. Lamentablemente la documentation no es muy detallada.
¿Cuáles son los principales atributos para configurar el gradiente? Entiendo los colores iniciales y finales, pero algunos de los otros atributos podrían necesitar alguna explicación.
En este momento utilicé imágenes como fondo para los botones, pero un dibujable definido en XML sería mucho mejor.
Intento obtener una apariencia como esta (es un gradiente muy ligero): texto alt http://janusz.de/~janusz/RedButton.png
Usa este xml como fondo para la vista de imagen.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="90" android:startColor="#7c0000" android:endColor="#A71C1C"/>
</shape>
Eso es.
Código
Originalmente encontré esta pregunta porque quería hacerlo en código. Aquí está cómo hacerlo programáticamente.
int startColor = 0xfff6ee19; // yellow
int endColor = 0xff115ede; // blue
GradientDrawable gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.LEFT_RIGHT,
new int[] {startColor, endColor});
View myView = findViewById(R.id.my_view);
myView.setBackgroundDrawable(gradientDrawable);
Las diferentes orientaciones en la imagen en la parte superior se pueden lograr cambiando la Orientation
en el constructor.
XML
Como ya se ha respondido, así es como lo haces en xml.
my_gradient_drawable.xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="linear"
android:angle="0"
android:startColor="#f6ee19"
android:endColor="#115ede" />
</shape>
Lo pones en el fondo de alguna vista. Por ejemplo:
<View
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/my_gradient_drawable"/>
Ver también
- Cómo hacer fondo degradado en Android
- Documentación de
GradientDrawable