Italian Cambiare font in una label

Elric

Well-Known Member
Licensed User
Mi trovo sempre spaesato.

Intanto c'è questo bel thread (https://www.b4x.com/android/forum/threads/b4x-createb4xfont.138325/) di @LucaMs che però prevede il font nella DirAsset. Se invece volessi un font già installato?

Io mi trovo strabene con il comando
B4X:
fx.CreateFont(strFontName, intTextSize, ynBold, ynItalic)
(gli manca solo il colore del font!) ma mi pare non ci sia un equivalente in B4A (in B4i non ne ho idea)...

Non c'è qualcosa di uniforme/universale?
 

Elric

Well-Known Member
Licensed User
Ma per avere un equivalente del comando fx.CreateFont dovrei creare una libreria ad hoc sfruttando i vari comando, non dissimile da come ha fatto LucaMs... o sbaglio?

In B4A - XUI vedo che è previsto il Bold ma non l'Italic.
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
Usa CreateFont e puoi farlo come vuoi
 
Upvote 0

Elric

Well-Known Member
Licensed User
Usa CreateFont e puoi farlo come vuoi
Mi trovo sempre spaesato.

Niente, non ci arrivo. Ho bisogno del disegnino.😩

Facciamo un passo indietro.

Voglio creare un Dialog dove gestire i font delle view.

Con "fx" trovo la cosa semplice:
1. metto in una lista tutti i font di sistema:
B4X:
lstFontName.AddAll(fx.GetAllFontFamilies)
2. inserisco nella B4XComboBox i nomi dei font
B4X:
cmbFontName.SetItems(lstFontName)
3. in un'altra B4XComboBox il valore per scegliere il TextSize, degli switch per il grassetto e per il corsivo e un button per far apparire un B4XColorTemplate per settare il colore.
4. con
B4X:
fx.CreateFont(strFontName, intTextSize, ynBold, ynItalic)
e
B4X:
Label1.TextColor

Semplice, facile e indolore (o quasi).

Come rendo la cosa universale anche per B4A e già che ci siamo per B4i?

[OT]C'è un modo per inserire direttamente il valore in una B4XComboBox senza dover necessariamente selezionarlo? Esattamente come con i vari Office.[/OT]
 
Last edited:
Upvote 0

Elric

Well-Known Member
Licensed User
Si, avevo inteso. Il video "how to change..." parte dal minuto in cui vorrei ottenere l'effetto voluto.

Intendevo: "senza dover necessariamente selezionarlo dall'elenco".

Ad es: la ComboBox di Office dà in elenco "8; 9; 10; 11; 12; 14; 16" etc. Però mi dà la possibilità di inserire direttamente un numero non in elenco, ad es. 15, come se fosse una TextArea o similari.

Ma al di là di questo (aprirò un altro thread), in B4A e B4i come procedo dal punto 2. in avanti (https://www.b4x.com/android/forum/threads/cambiare-font-in-una-label.146744/post-930270)?
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
Per cambiare colore al testo
B4X:
' Per tutte le piattaforme B4X
Label.TextColor=0xFF000000
'oppure
Label.TextColor=XUI.Color_Black

' SOLO IN B4A
Label.TextColor=colors.black

' SOLO IN B4J
Label.TextColor=fx.colors.black

Per il font italic
B4X:
' in b4j
Label.Font=fx.CreateFont("System",12,False,True)

' in b4a
Label.Typeface=Typeface.CreateNew(Typeface.DEFAULT,Typeface.STYLE_ITALIC)

' b4x - meglio usare quelli nativi perchè si allungano i passaggi in b4x e sempre devi creare un font nativo in ogni caso
 
Last edited:
Upvote 0
Top