2010-10-20 3 views
12

Il mio problema è che le immagini nella mia galleria si confondono l'una con l'altra quando comincio lo scorrimento verso l'immagine successiva.Elementi della galleria che si sovrappongono (bleed in)

Sto utilizzando un android.widget.Gallery connesso a un adattatore personalizzato che ho esteso da BaseAdapter.

metodo GetView() dell'adattatore è come questo

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

Perché stai impostando la bitmap dell'immagine da solo, invece di lasciare che l'adattatore si occupi di esso? –

risposta

9

In realtà ho trovato la soluzione al mio problema. In getView(), ImageView che stavo tornando non aveva alcun background e quindi le ImageViews si sovrapponevano. Ho impostato lo sfondo del ImageView al nero prima di tornare e sembra grande

+0

Buona idea, grazie, ha funzionato per me. –

29

Hai provato con Android: la spaziatura (in XML) oppure setSpacing (spaziatura int) (in codice) sul Galleria?

+0

Questo ha fatto il trucco per me. La sovrapposizione di elementi della galleria è iniziata quando ho iniziato a gonfiare gli elementi da un xml. Ora che è risolto - grazie! – Vanja

+2

Ha funzionato anche per me: setSpacing (0) – ToddH

+0

Lavorato, non dimenticare di impostare le unità: setSpacing (0dp) – Pelanes

0

Se si ha accesso all'istanza Galleria, è possibile anche chiamare il seguente metodo per rimuovere l'spurgo nella zona:

gallery.setUnselectedAlpha(1.0f); 

Ciò rimuove anche la nebulosità white-ish della vista Gallery.

3

Sembra che la dissolvenza sia stata aggiunta automaticamente e la disattivazione tramite XML non funzioni.

Tuttavia disabilitazione sembra programmaticamente funzionare:

Galleria carosello = (Gallery) findViewById (R.id.image_carousel); carousel.setHorizontalFadingEdgeEnabled (false);

+0

Non funziona per me – Premier