2011-01-28 3 views
6

Sto prendendo il tutorial this. Come puoi vedere dall'immagine this, il bordo grigio standard viene applicato a tutti gli elementi della galleria. Vorrei rimuovere questo bordo piuttosto brutto, o, in realtà, renderlo un bordo di 1 px (o solo così le immagini possono essere distinte l'una dall'altra). Ho provato a rimuovere questa linea:Modificare lo stile del bordo nella Galleria

imgView.setBackgroundResource(GalItemBg); 

che rimuove il confine, ma poi le immagini si sovrappongono l'un l'altro e non è ancora molto bella.

Quindi, come cambio il bordo? E come faccio a far sì che gli elementi della galleria non si sovrappongano l'un l'altro?

risposta

11

Sono sicuro che hai già scoperto una risposta per questo problema, ma poiché non ne viene pubblicato nessuno, eccone uno ora!

È possibile posizionare ciascuno degli oggetti imgView all'interno di uno RelativeLayout con uno sfondo nero e uno di riempimento. Quindi restituire l'oggetto RelativeLayout contenente lo ImageView invece di restituire l'ImageView stesso.

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; 
} 

Infine, è molto più facile far rispettare una distanza tra le Gallery immagini utilizzando il metodo Galleria setSpacing(int pixels) di mettere uno spazio tra ogni oggetto Gallery. Non si otterrà il bordo nero intorno a loro, ma lo sfondo Gallery sarà visibile tra e dietro di loro.

+0

Questo mi dà un Ispettore di ClassCastException di lanciarlo su una vista. –

+0

Controlla il tuo codice, ho appena ripeterlo esattamente e non ho avuto problemi. Questo codice va inserito nell'adattatore Galleria. –

+0

Grazie per il ricontrollo. Ho ancora lo stesso problema. Il mio estende BaseAdapter ... forse stai lavorando con ArrayAdapter ? –