2010-10-20 20 views
12

Mi problema es que las imágenes en mi Galería se están desangrando una vez que empiezo a desplazarme hacia la siguiente imagen.Artículos de la galería superpuestos (sangrado)

Estoy usando un android.widget.Gallery conectado a un adaptador personalizado que extendí desde BaseAdapter.

El método del adaptador GetView() es como esto

public View getView(int position, View convertView, ViewGroup parent) { 
      ImageView i = new ImageView(mContext); 
      if (mImageBitmap != null && position < mImageBitmap.length) 
      i.setImageBitmap(mImageBitmap[position]); 
      return i; 

alt text }

+0

¿Por qué configura usted mismo el mapa de bits de la imagen, en lugar de dejar que el adaptador se encargue de ello? –

Respuesta

9

De hecho, encontré la solución a mi problema. En getView(), el ImageView que estaba devolviendo no tenía fondo y, por lo tanto, las ImageViews se superpondrían. Me puse el fondo de la ImageView a negro antes de devolverlo y se ve muy bien

+0

Buena idea, Gracias, funcionó para mí. –

29

¿Usted intentó utilizar Android: separación (en XML) o setSpacing (espaciado int) (en código) de la ¿Galería?

+0

Esto hizo el truco para mí. La superposición de elementos de la galería comenzó cuando comencé a inflar los elementos de un xml. Ahora eso está resuelto, ¡gracias! – Vanja

+2

Funcionó para mí también: setSpacing (0) – ToddH

+0

Funcionó, no se olvide de configurar las unidades: setSpacing (0dp) – Pelanes

0

Si tiene acceso a la instancia galería, también puede llamar al siguiente método para eliminar el sangrado en la zona:

gallery.setUnselectedAlpha(1.0f); 

Esto también elimina la nebulosidad blanca de la vista de Galería.

3

Parece que el desvanecimiento se agrega automáticamente y deshabilitar a través de XML no funciona.

Sin embargo deshabilitar mediante programación parece funcionar:

Galería carrusel = (Galería) findViewById (R.id.image_carousel); carrusel.setHorizontalFadingEdgeEnabled (falso);

+0

No funciona para mí – Premier