Hello everyone
I'm trying to use new version of Material Design Icons.
So i downloaded, copied in files folder, imported with files manager and used the code bellow to show icons.
Unfortunately i can't show the icons of the library. I believe that is something about the bigger hex numbers from the previous versions but i am not sure. I used Chr32 function to return UTF32 but without success too.
ASTabMenu_horizontal.FontToBitmap is not working either.
Any advice is welcome!
I'm trying to use new version of Material Design Icons.
So i downloaded, copied in files folder, imported with files manager and used the code bellow to show icons.
B4X:
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private ASTabMenu_horizontal As ASTabMenu
End Sub
Public Sub Initialize
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("frm_main")
B4XPages.SetTitle(Me,"AS Tab Menu Example V1.20")
ASTabMenu_horizontal.SelectedTabTextColor = xui.Color_Green
ASTabMenu_horizontal.BeginUpdate
ASTabMenu_horizontal.AddTab(xui.Color_White,"Menu1", FontToBitmap(Chr(0xF1028),True,30,xui.Color_BLACK),"")
ASTabMenu_horizontal.AddTab(xui.Color_White,"Menu2", FontToBitmap(Chr(0xF179),False,30,xui.Color_BLACK),"")
ASTabMenu_horizontal.AddTab(xui.Color_White,"Menu3", FontToBitmap(Chr(0xF11B),False,30,xui.Color_BLACK),"")
ASTabMenu_horizontal.EndUpdate
Sleep(0)
ASTabMenu_horizontal.CurrentTabUnderlineGravity = ASTabMenu_horizontal.CurrentTabUnderlineGravity_BOTTOMRIGHT
ASTabMenu_horizontal.TabStripMode = False
End Sub
Sub Chr32(code As Long) As String
Dim bc As ByteConverter
Dim c() As Byte = bc.LongsToBytes(Array As Long(code))
For i = 0 To c.Length - 1
Log(c(i))
Next
Return BytesToString(c, 0, c.Length, "UTF32")
End Sub
'Convert fonts a icon bitmap
Public Sub FontToBitmap (FontText As String, IsMaterialIcons As Boolean , FontSize As Int, FontColor As Int) As B4XBitmap
Dim xui As XUI
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, 32dip, 32dip)
Dim cvs1 As B4XCanvas
cvs1.Initialize(p)
Dim t As B4XFont
' Dim IconsFont As B4XFont
If IsMaterialIcons Then
t = xui.CreateFont(Typeface.LoadFromAssets("materialdesignicons-webfont.ttf"), FontSize)
Else
t = xui.CreateFont(Typeface.FONTAWESOME, FontSize)
End If
Dim r As B4XRect = cvs1.MeasureText(FontText, xui.CreateFont2(t, FontSize))
Dim BaseLine As Int = cvs1.TargetRect.CenterY - r.Height / 2 - r.Top
cvs1.DrawText(FontText, cvs1.TargetRect.CenterX, BaseLine, xui.CreateFont2(t, FontSize), FontColor, "CENTER")
cvs1.Invalidate
Dim b As B4XBitmap = cvs1.CreateBitmap
cvs1.Release
Return b
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub ASTabMenu_horizontal_TabClick(index As Int)
Log("TabClick: " & index)
End Sub
Unfortunately i can't show the icons of the library. I believe that is something about the bigger hex numbers from the previous versions but i am not sure. I used Chr32 function to return UTF32 but without success too.
ASTabMenu_horizontal.FontToBitmap is not working either.
Any advice is welcome!