Forma dibujable que no se muestra cuando se utiliza en combinación con el atributo android: drawableBottom.

Archivo XML guardado en res / drawable / gradient_box.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /> </shape> 

(La definición de forma anterior se toma de la guía de desarrolladores de Android, no hay errores.).

Vamos a tratar de usarlo junto con un TextView:

 <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Text with some crazy rectangle shape below it." android:drawableBottom="@drawable/gradient_box"/> 

El TextView se muestra como si el atributo drawableBottom no estuviera allí. Sin embargo, establecer la forma como el fondo funciona bien:

 <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Text with crazy background" android:background="@drawable/gradient_box"/> 

Establecer una imagen real (por ejemplo, un * .png) en el android: drawableBottom también funciona bien.

¿Algunas ideas?

¡Resuelto! El problema parece ser que una forma no tiene necesariamente límites intrínsecos. Es decir, el resultante dibujable no sabe cómo dibujar a sí mismo!

Para resolver este problema, simplemente especifique el tamaño de la forma, como esto:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /> <size android:width="xxdp" android:height="xxdp"/> </shape> 

Cuando la forma se especificó como un fondo dibujable para el TextView, se sabía que sus dimensiones eran las mismas que las dimensiones de TextView. Al indicar la forma para ir a la derecha o por encima de TextView, las dimensiones de forma no se pudieron determinar automáticamente.

Si está utilizando un ImageView para alojar la forma de línea como parte del atributo "android: src", también se ejecutará en el mismo problema a menos que especifique el ancho y la altura como parte de la forma xml. Una solución es alojar la forma de línea como parte del atributo "android: fondo" de ImageView. De esta manera, puede hacer uso de los atributos de tamaño del ImageView para que la forma de la línea se "muestre".

  • Cómo cambiar el ancho de trazo de una forma de programación en Android?
  • Android Drawable: ¿Especificar el ancho de la forma en porcentaje en el archivo XML?
  • Cómo crear o modificar un programa de forma programable de líneas de diferentes colores
  • Android: dibuja la forma con la esquina sesgada
  • Porter-Duff: ¿comportamiento diferente para diferentes formas?
  • Android hacer la forma de diseño personalizado
  • ¿Cómo inserto texto dentro de un rectángulo redondeado en la vista de Android?
  • ¿Cómo puedo dibujar la forma de la cinta Android Studio?
  • ¿Cómo crear un teclado en pantalla de Android que no es un rectángulo en la parte inferior de la pantalla?
  • forma androide con un fondo repetido
  • Forma de androide dentro de una forma
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.