2009-07-28 12 views
7

OK, quindi penso di aver esaurito la ricerca di questa domanda, ed è che mi manca totalmente qualcosa o che nessun altro ha provato a creare un GridView (che mostra immagini) che consente all'utente di selezionare più immagini. Fondamentalmente voglio che la casella di selezione arancione venga visualizzata ogni volta che un utente seleziona un'immagine, o scompare se l'utente ha già scelto l'immagine.GridView selezionabile multiple

È qualcosa che dovrò fare da solo con un cliente? Potrei anche provare ad includere un CheckBox con ogni immagine e avere la CheckBox selezionata se l'immagine è.

Qualsiasi assistenza sarebbe molto apprezzata.

  • Michael

risposta

1

solo disegnare una casella di controllo sul bitmap della cellula quando selezionato. Disegna l'originale quando si deseleziona.

private Bitmap drawCheck(Bitmap bmp) 
    { 
    Bitmap bmChecked = Bitmap.createBitmap(bmp.getWidth(),  bmp.getHeight(), bmp.getConfig()); 
    Bitmap check = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.upcheck); 
    Canvas canvas = new Canvas(bmChecked); 

    canvas.drawBitmap(bmp, 0, 0, null); 
    canvas.drawBitmap(check, 0, 0, null); 
    return bmChecked; 
    } 
1

Ho utilizzato un eccellente code by Mihai Fonoage.

E poi:

  1. aggiunto una bandiera selezionato in classe LoadedImage,
  2. nella funzione onItemClick() I contrassegnare l'elemento cliccato come selezionato
  3. nel GetView dell'adattatore() utilizzare il flag di vale a dire impostare lo sfondo dell'immagine

FUNZIONA.

+0

puoi inserire il tuo codice? – Patrick

+0

Beh, non sono sicuro di poter pubblicare il suo codice. Se analizzi accuratamente il codice dal link, e poi fai ciò che ti ho indicato, sono sicuro che non andrai nel modo sbagliato. – Yar

5

Dai uno sguardo a this example - usano una classe di layout personalizzata che implementa l'interfaccia controllabile e imposta uno sfondo colorato disegnabile sugli elementi selezionati.