2011-11-07 32 views
5

Bueno ... Tengo algunos ImageButtons en mi aplicación Android. Quiero que muestren la imagen completa. Quiero decir: quiero que ImageButton sea JUSTO la imagen, ¿sabes?Imagebutton imagen completa, esquinas redondeadas

Ok ... hasta ahora, tan bueno ... Puedo usar la propiedad "fondo".

Sin embargo, también quiero que ImageButton tenga las esquinas redondeadas.

tengo el siguiente código XML en mi carpeta de diseño:

<?xml version="1.0" encoding="UTF-8"?> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <solid android:color="#FFFFFFFF"/> 
      <corners android:radius="10dip"/> 
      <stroke android:width="8dip"/> 
     <size android:height="8dip"/>  
     </shape> 

Funciona perfecto cuando no quiero la imagen para llenar la ImageButton TODA ... sin embargo cuando intento utilizar la imagen a utilizar el botón de imagen completo ... no muestra las esquinas redondeadas.

¿Alguien me puede ayudar, por favor?

Pregunta extra: Además, ¿cómo puedo tener una hermosa línea negra (esquinas redondeadas) alrededor del botón de la imagen?

Respuesta

10

puedo sugerir que use ImageView en lugar de ImageButton y coger su onClick() Y puede utilizar este archivo XML para darle una multa negro bordes redondeados esquema para su imagen:.

image_bg.xml: (pega este archivo XML en la carpeta estirable)

<?xml version="1.0" encoding="UTF-8" ?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#000000" /> 
    <stroke android:width="3dp" android:color="#776da8" /> 
    <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" /> 
    <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" /> 
    </shape> 

usted puede usarlo (en el archivo XML en el que ha añadido la imagen) como:

<ImageView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/image" 
      android:src="@drawable/icon" 
      android:background="@drawable/image_bg" /> 
+0

Niza consejo: 'ImageView' es mejor que' ImageButton' es ese caso. Gracias – shkschneider

2

¿Para qué sirve el botón de imagen? Actualmente estoy trabajando en una caja de resonancia y me encontré con el mismo problema. Entonces me di cuenta de que no tiene que ser un "botón de imagen" para que pueda usarlo como un botón. Ahora solo uso imageview y luego uso onclick. En cuanto a la estética de la línea negra, no lo sé, pero mis imágenes tienen esquinas redondeadas porque trajé las imágenes creando íconos bajo iconos nuevos/otros/Android. Hace automáticamente uno en cada categoría de tamaño de diferencia. ¡Espero eso ayude!

1

Creo que esto te ayudará. Es posible que pueda modificarlo ligeramente para agregar bordes negros al pintar el nuevo mapa de bits.

How to make an ImageView with rounded corners?

continuación, puede simplemente asociar un controlador de onClick a la imageview.