Xamarin形成控件,这些控件具有margin、padding,width和height属性,以及如何将此属性值转换为像素。
已经获得了一些将db转换为px的参考链接,但默认的xamarin形式是px还是db?
public float convertDpToPx(Context context, float dp)
{
return dp * context.getResources().getDisplayMetrics().density;
}
将像素转换为dp
在xamarin(uwp、Android和iOS(中,是否可以将宽度和高度值转换为像素?
提前谢谢。
dp是密度无关像素,dp通常用于Android开发以适应手机。谷歌规定,当1英寸屏幕上有160个像素时,则1dp=1px=1dpi。
安卓dp的用途是自适应不同大小和分辨率的手机,一个dp值可以让安卓系统自动选择匹配的资源。也就是说,可以通过某种方式获得dp值,以根据设备要求获得相应的图像资源或大小。
xamarin提供了Xamarin.Essentials
,用于获取当前显示器的密度。你可以使用dp和px的关系,从px得到dp。(xamrin宽度和高度的默认单位是px(
public static int px2dip(DisplayInfo mainDisplayInfo, float pxValue)
{
float scale = (float)mainDisplayInfo.Density;
return (int)(pxValue / scale + 0.5f);
}
var dp = px2dip(DeviceDisplay.MainDisplayInfo, pxvalue);