Italian si puo fare? imageview1 etc.

fifiddu70

Well-Known Member
Licensed User
Longtime User
Ciao eccomi qua con un'altra delle mie problematiche, devo caricare su un pannello con 100 imageview rinominate tutte come: imageview1, imageview2, imageview3 etc...
ad ogni imageview corrisponde un numero che dorvei caricare quindi imageview1.bitmap=loadbitmap(file.dirasset,"1occupato.jpg")
presumendo che numero è una variabile numerica.
Quindi sarà questo il codice che mi sembra troppo eccessivo per 100 imageview:

if numero = 1 then
imageview1.bitmap=loadbitmap(file.dirasset,"1occupato.jpg")
else if numero = 2 then
imageview2.bitmap=loadbitmap(file.dirasset,"2occupato.jpg")

e cosi via fino a 100.
Ora capirete che si tratta di una cosa mostruosa da fare oltre che ingombrante come codice,
esiste una alternativa a questa soluzione?
un abbraccio dalla Sicilia occidentale ( Mare di Selinunte )
 

Filippo

Expert
Licensed User
Longtime User
Ciao @fifiddu70 ,

non sarà esattamente quello che cerchi, ma prova questo:
B4X:
    Dim imageview1(100) As ImageView
    
    For i = 1 To 100
        If File.Exists(File.DirAssets, i & "occupato.jpg") Then
            imageview1(i - 1).Initialize("")
            imageview1(i - 1).bitmap = LoadBitmap(File.DirAssets, i & "occupato.jpg")
        End If
    Next
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
Ciao @fifiddu70 ,

non sarà esattamente quello che cerchi, ma prova questo:
B4X:
    Dim imageview1(100) As ImageView
   
    For i = 1 To 100
        If File.Exists(File.DirAssets, i & "occupato.jpg") Then
            imageview1(i - 1).Initialize("")
            imageview1(i - 1).bitmap = LoadBitmap(File.DirAssets, i & "occupato.jpg")
        End If
    Next
Filippo non sono riuscito a farlo funzionare, ci proverò con calma perchè credo che sia uno sbaglio mio.
 

LucaMs

Expert
Licensed User
Longtime User
Filippo non sono riuscito a farlo funzionare, ci proverò con calma perchè credo che sia uno sbaglio mio.
L'esempio di Filippo (giusto, tranne il fatto che si "spreca" ImageView1(0) e che ImageView1(100) darebbe errore) presuppone che tu abbia un file di layout con le 100 ImageView.
Se invece le crei da codice, manca l'inizializzazione e l'aggiunta al pannello, da fare all'interno del ciclo.
 

Filippo

Expert
Licensed User
Longtime User
L'esempio di Filippo (giusto, tranne il fatto che si "spreca" ImageView1(0) e che ImageView1(100) darebbe errore) presuppone che tu abbia un file di layout con le 100 ImageView.
Se invece le crei da codice, manca l'inizializzazione e l'aggiunta al pannello, da fare all'interno del ciclo.
No, non si spreca niente, guarda l'esempio.

B4X:
imageview1(i - 1).bitmap
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
stasera al rientro dal mare ci lavoro di più perchè sto per farlo funzionare con il tuo prezioso consiglio, Filippo.
 
Top