mi spiegate come funziona questa cosa? ho dei layout ottimizzati per tablet 1280x800.
Oggi un cliente è passato a tablet 1900x1200 ma alcune cose non vanno bene.
in particolare, le scrollview non vengono ridimensionate.
Premesso che io ho l'istruzione ....addview(myview,......) e li ci sono i valori di top e left, width ed height, come devo impostare questo comando per fare in modo che vengano scalate automaticamente?
devi riscrivere tutte le dimensioni usando latuaview.setlayount(left%x,top%y,width%x,heigth%y)
e devi farlo per ogni view
in oltre i testi non vengono ridimensionati, per i testi io uso una sub che mi calcola il textsize in base a quanto deve essere alto il testo stesso
B4X:
Sub SLHtext(H As Int,V As View) As Int
Dim c As Canvas
c.Initialize(V)
Dim h1 As Float
Dim t As String
t = "Tg"
h1 = c.MeasureStringHeight(t, Typeface.DEFAULT, 10)/10
h = h/h1
Return h
End Sub
Intanto LstStorico non è una ScrollView ma una ListView (che sarebbe sempre meglio sostituire con una CustomListView).
Poi l'aggiungi da codice usando AddView ma passi dei numeri che non sono dip, dovresti mettere 400dip, 100dip...
Ma, come ti hanno già consigliato, affinché sia proporzionato su tutti gli schermi (benché... va beh, omissis), dovresti usare delle percentuali di X e Y,
come AddView(LstStorico, 20%x, 10%y...)
Intanto LstStorico non è una ScrollView ma una ListView (che sarebbe sempre meglio sostituire con una CustomListView).
Poi l'aggiungi da codice usando AddView ma passi dei numeri che non sono dip, dovresti mettere 400dip, 100dip...
Ma, come ti hanno già consigliato, affinché sia proporzionato su tutti gli schermi (benché... va beh, omissis), dovresti usare delle percentuali di X e Y,
come AddView(LstStorico, 20%x, 10%y...)
si infatti sto provando cosi è sto trovando le proporzioni giuste, vedo però che gli altri controlli (textbox, label, panel) li ridimensiona in automatico