Italian Dimensione massima font?

MAX_SV

Active Member
Licensed User
In questi giorni ho ricevuto una richiesta particolare la realizzazione di un tabellone modulare tramite tablet, in sostanza una matrice di tablet dove ogni device visualizza una lettera i dati saranno inviati da PC via wireless.
Il problema in cui mi sono imbattuto è la dimensione massima del font con impostazioni:
Typeface : standard
Style: bold_italic
se imposto una dimensione superiore a 803 non viene visualizzato nulla ... è una limitazione di b4a? O sbaglio qualcosa io?
Grazie
 

MAX_SV

Active Member
Licensed User
La butto li .....se sai gia che tablet utilizzano perche' non preparare delle immagini per ogni lettere , magari anche con stili diversi , e poi fai visualizzare le imamgini
non male come idea .....
 

LucaMs

Expert
Licensed User
se sono buone, dicci dove le butti che le recuperiamo :p

Per la risposta... booohhhh

però posso dirti come cambiare i font (cosa utile se vuoi fare una cosa carina!), ma data la mia memoria...
devo cercare tra i miei progetti (incompiuti!)...
 

LucaMs

Expert
Licensed User
B4X:
Dim default_font, default_font_bold, default_font_italic As Typeface
default_font = default_font ' to avoid warning
default_font_bold = default_font_bold ' to avoid warning
default_font_italic = default_font_italic ' to avoid warning

SetFont("NomeDelFileColFont.ttf")
lblAppTitle.TextSize = 34
lblAppTitle.Typeface = default_font


Private Sub SetFont(FontFileName As String)
    default_font = Typeface.LoadFromAssets(FontFileName) 'ignore
    default_font_bold   = Typeface.CreateNew(default_font, default_font.STYLE_BOLD)
    default_font_italic = Typeface.CreateNew(default_font, default_font.STYLE_ITALIC)
End Sub
 

ivanomonti

Well-Known Member
Licensed User
io invece ho il problema a capire come tenere una dimensione visibile fra varie risoluzioni, se uso 16dip su un dispositivo (phone) vedo bene, se passo a tablet si vede ho piccolo o grande o merda...

Esiste un modo per tenere il font nelle dimensioni visibili attraverso il codice e il riconoscimento del dispositivo...
 

LucaMs

Expert
Licensed User
Io uso sempre il modulo Scale, anche per il FontSize (veramente l'ho modificato leggermente, per questo).
Se non vuoi usare tutto il modulo, puoi sempre estrapolarne la parte che ti serve.
 

ivanomonti

Well-Known Member
Licensed User
e come si usa questo codice mmmmmm un esempio pratico esiste.

B4X:
        Dim mlabel As Label
        mlabel.Initialize("mlabel")
        mpanel.AddView(mlabel,10dip,0dip,mpanel.Width-110dip,100dip)
        mlabel.Text = "Pw # " & mod_global.record.GetString("a01")
        mlabel.TextColor = Colors.ARGB(222,0,0,0)
        mlabel.TextSize = mlabel.TextSize * Scale.GetScaleTxt
        mlabel.Gravity = Bit.OR(Gravity.LEFT, Gravity.CENTER_VERTICAL)
mi consegna sempre 0
 
Last edited:

LucaMs

Expert
Licensed User
Per usare solo la parte che interessa te dovresti guardare l'inizializzazione.

Comunque, ti dico come lo uso io (tutto il modulo, non solo la parte per il TextSize).

Creo due layout per l'activity (portrait-landscape) con le dimensioni del mio display (480x800-1.5)

Quindi, nell'Activity_Create uso:

B4X:
Activity.LoadLayout("layMain")
Scale.SetReferenceLayout(480, 800, 1.5, False, False)
Scale.ScaleAll(Activity, True)
Gli ultimi due parametri (mia grande invenzione/scoperta hehehe) dovranno corrispondere a FullScreen e ActivityTitle (anche nel layout, ovviamente).

Se poi mi capita di aggiungere view da codice:

B4X:
Scale.ScaleView(lblNewLabel)
ed il suo TextSize:

B4X:
lblNewLabel.TextSize = 20 * Scale.GetScaleTxt
 

MAX_SV

Active Member
Licensed User
server.png
Se usi delle immagini , magari puoi far scorrere le ' scritte ' , o cambiarle , mettere effetti ...a fantasiaaaaaaaaaaaa
alla fine ho seguito il tuo consiglio ... trasmissione dati wifi con UDP e programma di gestione in net ... và che è una scheggia
 
Top