2010-07-18 9 views
38

que define un drawable¿Cómo usar una forma XML dibujable?

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http//schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <solid android:color="#ffffffff" /> 
    <size android:width="60dp" 
     android:height="40dp" /> 
</shape> 

Pero cómo lo utilizan en la definición layout?

<?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" 
       > 
    <ImageView 
     android:src="@drawable/ic_title" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     /> 
</LinearLayout> 

Sigo viendo solo fondo negro.

Editado:

Resultó que me perdí uno : en la declaración drawablexmlns. Ahora bien, este ejemplo funciona en el dispositivo de pan de jengibre :)

+0

Pregunta tonta, pero es 'ic_title' el nombre del dibujable que definiste? Además, puede configurar 'android: background en el' LinearLayout' –

+0

sí, ic_title es el dibujable que definí arriba. No quiero configurar Android: fondo, ese no es el efecto deseado. Puedo poner más ImageView en LinearLayout. –

Respuesta

14

tuve un problema similar y se encontró que si se quita la definición de tamaño, funciona por alguna razón.

Quitar:

<size 
    android:width="60dp" 
    android:height="40dp" /> 

de la forma.

¡Avíseme si esto funciona!

+0

Pero una forma sin la definición de tamaño, es lo mismo que llenar el fondo de ImageView. –

+0

Es cierto. Entonces asumiría que necesitas un contenedor para sostener esa vista de imagen, que establece su propio tamaño al tamaño que necesitas, eso es lo que hace mi ejemplo, es decir, declaro un diseño relativo con un tamaño y luego simplemente coloco mi imageView dentro . – sonnyd

+7

¡Jaja! Encontré tu problema: D Espero que me des mi primera felicitación por esto;) Tienes un error tipográfico en la definición de tu forma. Mira lo siguiente y detecta la falta ":" después de http: "http // schemas.android.com/apk/res/android" – sonnyd

20

En dibujable utilizo este código XML para definir el borde y el fondo:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#D8FDFB" /> 
    <padding android:left="7dp" android:top="7dp" 
    android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="4dp" /> 
    <solid android:color="#f0600000"/> 
</shape> 
Cuestiones relacionadas