tutorial trapezoid studio example android android-layout

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