Italian Array di Bitmap

Sberla

Active Member
Licensed User
Longtime User
Salve ragazzi vorrei creare una lista di Bitmap e poi vorrei farmi tornare la bitmap che mi serve passandogli solo l'elemento.

Code: Copy
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ì:

Code: Copy
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.

Code: Copy
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

Code: Copy
If btm.ContainsKey ( "pippo" ) Then
   Return btm.Get ( "pippo" )
 
Dopo aver creato l'array di Bitmap lo inserisco in un listview:

Code: Copy
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
 
Come crei l'array di bitmap?
 
ma se usi il codice che ti ho scritto?
 
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.

Code: Copy
Listview.Tag(Listview.size-1)="1"

poi per andare a rileggerlo:

Code: Copy
Listview.Tag(Listview.size-1)

posso fare una cosa del genere?
 
Non so dirti se funziona.
Ma ti serve il tag? Se conosci il nome dell'immagine che devi tirare fuori, allora basta che lo leggi dalla map
 
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.
 
Allora sulla map, con la coppia value - key, su value metti l'immagine e su key metti il valore della row
 
Back
Top