2012-05-29 59 views
9

Lo que intento hacer funcionará mejor con una imagen de ejemplo. Como puede ver a continuación, tengo un fondo gris, sobre el cual se encuentra un contenedor con algo de relleno que contiene una imagen. El contenedor también tiene una ligera sombra de gotas.Agregar marco o borde a ImageView y Drop-Shadow

Lo que quiero saber, es si hay una manera no tan minuciosa de hacer esto en mi layout.xml? En un documento HTML normal esto hubiera sido fácil. Pero dado que esto es para una aplicación móvil y para varias resoluciones de pantalla, etc., está resultando un poco difícil.

¿Algún consejo?

enter image description here

Edit: finalmente se estableció mediante una imagen de 9patch. Todo fue muy fácil en la creación de él, pero cuando realmente lo uso en mi aplicación veo estas franjas oscuras en la parte derecha e inferior de la imagen. La sombra de gotas parece funcionar, es una sombra de gotas muy ligera ... ¿pero esas malditas rayas?

enter image description here

Respuesta

5

Esto se puede hacer con la corrección del 9 protectores y. Vea esto link, puede ser que pueda ayudarlo.

+0

Es sin duda la mejor manera de hacerlo. ¡Gracias! – Tiwaz89

+0

por favor, ¿pueden echar un vistazo a mi publicación editada y ver el resultado que obtengo con 9patch? Parece que hay estas franjas oscuras en la parte derecha e inferior de la imagen. No entiendo por qué están allí? – Tiwaz89

+0

Puedes publicar tu archivo de 9 parches, parece que hay algún problema con ese parche 9. – orchidrudra

5

ImageView que tienen dos propiedades android:background y android:src

http://developer.android.com/reference/android/widget/ImageView.html

Crear un marco blanco en blanco con sombra (Photoshop recomendado).

Así que a hacer esto

<ImageView android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/image" 
    android:background="@drawable/whiteFrame" 
    android:padding="10dp" > 
</ImageView> 
+0

Muchas gracias apreciado. ¿Esto funcionaría aún en diferentes densidades de pantalla? Debido a que la imagen y el marco blanco no serían capaces de cambiar el tamaño en diferentes teléfonos con diferentes resoluciones, ¿correcto? – Tiwaz89

+0

Usa la imagen de nueve parches, mira el enlace provisto por @orchidrudra. –

+0

¿pueden echar un vistazo a mi publicación editada y ver el resultado que obtuve con 9patch? Parece que hay estas franjas oscuras en la parte derecha e inferior de la imagen. No entiendo por qué están allí? – Tiwaz89

15

Puede proporcionar un borde a una vista al escribir un archivo XML (editBorder.xml decir) en la carpeta dibujable:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

    <stroke 
     android:width="5dp" 
     android:color="#EBDDE2" /> 

    <padding 
     android:bottom="2dp" 
     android:left="2dp" 
     android:right="2dp" 
     android:top="4dp" /> 

    <gradient 
     android:centerColor="@color/white" 
     android:endColor="@color/white" 
     android:startColor="@color/white" /> 

    <corners android:radius="8dp" /> 

</shape> 

y para proporcionar esta frontera, la declaración de uso en ImageView como android:background="@drawable/editBorder"

Esto debería solucionar tu problema. :)

+0

gracias, esto se ve muy prometedor, acabo de probar esto pero recibí una excepción que decía "Error al convertir (at) drawable/editBorder en un drawable". ¿Algunas ideas? – Tiwaz89

+1

Probar: Limpia tu código, compila y ejecuta nuevamente. O bien, como no puede dar un nombre de archivo xml con letra mayúscula, proporcione edit_border.xml – Shrikant

Cuestiones relacionadas