I want to know if there is a way to add an a personal font .ttf file in side designer for B4X, b4I and b4J, or if there is a way using compatible code for the 3 platforms. I need use this font in buttons.text and labels.text.
Thanks Mike, However, it only appears for the TYPEFACE property in B4A, but not in B4I or B4J. My application is multiplatform and it is essential that it works in all of them.
Thanks Mike, However, it only appears for the TYPEFACE property in B4A, but not in B4I or B4J. My application is multiplatform and it is essential that it works in all of them.
Ok, I see that in B4J with the instruction fx.LoadFont this is possible and it works for me, and in B4I I followed the guide https://www.b4x.com/android/forum/threads/custom-fonts.46461/#content that in fact, between the file name, the font name, and not having included the spaces (like say in the guide) in the font name when defining it in Create New2, made me make several test errors until I got it. By the way, you need to include the spaces in the name.
It would be very good to unify in a future version as common code, or directly from the designer of the 3 platforms, a single way to configure the custom fonts.
#If B4i
#AppFont: courier-new.ttf
#End If
#If B4J
Dim BF As Font = fx.LoadFont(File.DirAssets,"courier-new.ttf", 36)
#End If
#If B4A
Dim TF As Typeface = Typeface.LoadFromAssets("courier-new.ttf")
Dim BF As B4XFont = xui.CreateFont(TF, 13)
#End If
#If B4i
Dim TF As Font = Font.CreateNew2("courier-new", 30)
Dim BF As B4XFont = xui.CreateFont2(TF, 13)
#End If
LblTotal.Font = BF
#If B4i
#AppFont: courier-new.ttf
#End If
#If B4J
Dim BF As Font = fx.LoadFont(File.DirAssets,"courier-new.ttf", 36)
#End If
#If B4A
Dim TF As Typeface = Typeface.LoadFromAssets("courier-new.ttf")
Dim BF As B4XFont = xui.CreateFont(TF, 13)
#End If
#If B4i
Dim TF As Font = Font.CreateNew2("courier-new", 30)
Dim BF As B4XFont = xui.CreateFont2(TF, 13)
#End If
LblTotal.Font = BF
Aeric, So much thanks.
I did it as you indicate, however for B4A I did it directly in the designer since you can include the font in the designer files and immediately select it in the TypeFace of the view properties.
I will carry out tests for B4A according to the code that you indicate.
'Add in main APP B4i
'#AppFont: Courier-New.ttf
Dim FontCourierNew As B4XFont
#If B4A
FontCourierNew = xui.CreateFont(Typeface.LoadFromAssets("Courier-New.ttf"),62)
#Else If B4J
Dim fx As JFX
FontCourierNew = xui.CreateFont(fx.LoadFont(File.DirAssets,"Courier-New.ttf",62),62)
#Else
FontCourierNew = xui.CreateFont(Font.CreateNew2("Courier-New.ttf",62),62)
#End If
Button1.Font = FontCourierNew
Button1.TextSize = 18