B4X:
Sub SetLabelSize(lbl As Label, txt As String)
Dim dt As Float
Dim limit = 0.1 As Float
Dim h As Int
lbl.Text = txt
lbl.TextSize = 72
dt = lbl.TextSize
h = stu.MeasureMultilineTextHeight(lbl, txt)
Do While dt > limit Or h > lbl.Height
dt = dt / 2
h = stu.MeasureMultilineTextHeight(lbl, txt)
If h > lbl.Height Then
lbl.TextSize = lbl.TextSize - dt
lbl.TextSize = lbl.TextSize - 1 'ho aggiunto questo meno 1 se no a volte la scritta era grande e non si leggeva
Else
lbl.TextSize = lbl.TextSize + dt
lbl.TextSize = lbl.TextSize - 1 'ho aggiunto questo meno 1 se no a volte la scritta era grande e non si leggeva
End If
Loop
Ciao è da molto che uso questa sub insieme alla gemella per centrare le parole nei vari button o label. Ma ha volte non fa quello che mi aspetterei. Vorrei modificarla ma non capisco bene il valore delle variabili. es.
lbl.Height misura dell'altezza che su una riga è 87. Ma 87 di cosa, pixel?
lbl.TextSize = 72 qui viene assegnato la grandezza del carattere, credo
h calcola l'altezza nel caso ci siamo più linee
Ho dove posso trovare il manuale di questa libreria che non riesco a trovare? O ferse c'è un modo migliore per fare questa operazione. Dimenticavo la libreria StingUtils. Ho provato a guardare la libreria ma io non ci ho trovato niente che mi dava spiegazioni. Il problema io l'ho sulla lunghezza forse questa sub non serve al mio scopo o sbaglio?