Thank you for your replies.

In the code below:

B4X:

` MenuTextSize=CanvasMenu.MeasureStringWidth(MList.Get(i),Typeface.DEFAULT,20) 'in dpi not dip`

**The question is, what factor is used for the computation of width in dpi?**

Is it from xdpi (see ExactSize - code from Erel):

B4X:

```
Sub ExactSize As Double
Dim r As Reflector
r.Target = r.GetContext
r.Target = r.RunMethod("getResources")
r.Target = r.RunMethod("getDisplayMetrics")
xdpi = r.GetField("xdpi")
ydpi = r.GetField("ydpi")
'Return Sqrt(Power(100%x / xdpi, 2) + Power(100%y / ydpi, 2))
Return Sqrt((100%x / xdpi)*(100%x / xdpi) + (100%y / ydpi)*(100%y / ydpi))
End Sub
```

B4X:

```
Sub GetDevicePhysicalSize As Float
lv = GetDeviceLayoutValues
Log(GetDeviceLayoutValues)
Return Sqrt(Power(lv.Height, 2) + Power(lv.Width, 2)) / lv.Scale / 160
End Sub
```

Best regards.

Sandy