Salve ragazzi vorrei creare una lista di Bitmap e poi vorrei farmi tornare la bitmap che mi serve passandogli solo l'elemento.
B4X:
Dim pippo(3) As Bitmap
pippo(0).Initialize(File.DirAssets, "a.jpg")
pippo(1).Initialize(File.DirAssets, "b.jpg")
pippo(2).Initialize(File.DirAssets, "c.jpg")
poi se voglio la seconda immagine e assegnarla in una nuova variabile fare così:
B4X:
Dim pluto As Bitmap
pluto=pippo(1)
Non so perché non mi funziona. Sto sbagliando qualcosa secondo voi?
Dichiari una variabile come map (btm) e la carichi con una lista che contiene i nomi dei file immagine contenuti nella cartella (nel mio codice i file .png).
Fai un ciclo e ad ogni giro, inizializzi una bitmap con il nome dell'immagine corrispondente.
B4X:
Private btm As Map
Private l As List
Private i As Int
Private f As String
l = File.ListFiles ( File.DirAssets )
For i = 0 To l.Size - 1
f = l.Get ( i )
If f.EndsWith ( ".png" ) Then
Dim b As Bitmap
b.Initialize( File.DirAssets , f )
btm.Put ( f.SubString2 ( 0 , f.Length - 4 ) , b )
End If
Next
Ora hai la lista e basta che ricerchi il nome dell'immagine che ti serve
B4X:
If btm.ContainsKey ( "pippo" ) Then
Return btm.Get ( "pippo" )
Dopo aver creato l'array di Bitmap lo inserisco in un listview:
B4X:
Dim Start As Int
For Start=0 To 10
lvtavoli.AddTwoLinesAndBitmap("a", "b",pippo(1))
Next
In questo ciclo in base a quello che voglio caricare, nel primo row voglio la 1 immagine nella seconda la terza...in base a come stanno caricatate, non so se mi sono spiegato. Arriva al "AddTwoLinesAndBitmap" e si chiude l'app. Non capisco perchè si chiude
Si devo fare una prova e vediamo se funziona. Nel Listview posso inserire il Tag del relativo row? vorrei salvarmi un valore e poi leggerlo. Sto provando con listview.Tag, ma non riesco a leggerlo o a scriverlo.
Mi serve oltre al nome dell'immagine che userò il map come mi hai spiegato, un valore di ogni row così da poterli differenziare in caso 2 o più row avessero lo stesso nome o stessa immagine.