I've now written a function that returns a font with a fixed pixel height.
B4X:
Sub GetRealHeightFont( fontHeightInPixel As Float ) As B4XFont
Dim fontHeight As Float = 50
Dim realHeight As Float = 1000
Do While Abs(realHeight - fontHeightInPixel) > 1
Dim font As B4XFont = xui.CreateDefaultFont( fontHeight )
Dim r As B4XRect = cnv.MeasureText( "Wq", font )
Dim realHeight As Float = r.Bottom-r.Top
fontHeight = fontHeight / ( realHeight / fontHeightInPixel )
Loop
Return font
End Sub
I think it's a bit laborious, but it works on my Android test devices.