Hi all,
I already know that in designer, we can use AutoScaleAll to scale all the button's, label's... text size. However, I have an array of button which I add by code, I can NOT use AutoScaleAll. I come through some formula but not sure which one is the most appropriate. 2 formulas I use are:
And
When I test using my Xperia Z 1080 x 1920 441 ppi scale 3, using both formula, the text seems to be fine
When I test using my friend's Xiaomi Mi Note 1080 x 1920 386 ppi scale unknown, using 2nd formula, the text seems too big
Can anyone help me? Thanks.
I already know that in designer, we can use AutoScaleAll to scale all the button's, label's... text size. However, I have an array of button which I add by code, I can NOT use AutoScaleAll. I come through some formula but not sure which one is the most appropriate. 2 formulas I use are:
B4X:
Dim RealInches, RealScale As Double
Dim BaseInches, BaseScale As Double
Dim Ratio As Double
RealInches = GetDeviceLayoutValues.ApproximateScreenSize
RealScale = GetDeviceLayoutValues.Scale
BaseInches = 4.33 'My test device screen size
BaseScale = 3 'My test device scale factor
Ratio = RealInches/BaseInches * Sqrt(RealScale/BaseScale)
Return Ratio
And
B4X:
Dim scale As Double
Dim delta As Double = ((100%x + 100%y) / (640dip + 360dip) - 1)
Dim rate As Double = 0.5 'value between 0 to 1.
scale = 1 + rate * delta
Return scale
When I test using my Xperia Z 1080 x 1920 441 ppi scale 3, using both formula, the text seems to be fine
When I test using my friend's Xiaomi Mi Note 1080 x 1920 386 ppi scale unknown, using 2nd formula, the text seems too big
Can anyone help me? Thanks.