2011-01-28 15 views
6

Estoy tomando this tutorial. Como puede ver en la imagen this, el borde gris estándar se aplica a todos los elementos de la galería. Me gustaría eliminar este borde bastante feo, o, en realidad, convertirlo en un borde de 1 px en su lugar (o solo para que las imágenes puedan distinguirse entre sí). He intentado eliminar esta línea:Cambiar estilo de borde en Galería

imgView.setBackgroundResource(GalItemBg); 

que elimina la frontera, pero entonces las imágenes se superponen entre sí y todavía no es muy bonita.

Entonces, ¿cómo puedo cambiar el borde? ¿Y cómo logro que los elementos de la galería no se superpongan entre sí?

Respuesta

11

Estoy seguro de que ya has descubierto una respuesta para este problema, pero como no hay ninguna publicada, aquí hay una ahora.

Puede colocar cada uno de sus objetos imgView dentro de un RelativeLayout con un fondo negro y un relleno. A continuación, devuelva el objeto RelativeLayout que contiene el ImageView en lugar de devolver el mismo ImageView.

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ImageView imgView = new ImageView(m_Context); 
    // do stuff initializing your imgView as before 
    RelativeLayout borderImg = new RelativeLayout(m_Context); 
    borderImg.setPadding(1,1,1,1); 
    borderImg.setBackgroundColor(0xff000000); 
    borderImg.addView(imgView); 
    return borderImg; 
} 

Por último, es mucho más fácil de aplicar una separación entre sus Gallery imágenes utilizando el método Galería setSpacing(int pixels) poner un espacio entre cada objeto Gallery. No obtendrá el borde negro a su alrededor, pero el fondo Gallery será visible entre ellos y detrás de ellos.

+0

Eso me da una ClassCastException a pesar de lanzarlo a una Vista. –

+0

Revise su código, simplemente volví a probar este código exactamente y no tuve ningún problema. Este código va en su adaptador de Galería. –

+0

Gracias por volver a verificar. Todavía tengo el mismo problema. El mío se extiende BaseAdapter ... tal vez estás trabajando con ArrayAdapter ? –

Cuestiones relacionadas