如何将Xamarin格式中的边距、填充、宽度和高度值转换为像素(px)



Xamarin形成控件,这些控件具有marginpaddingwidthheight属性,以及如何将此属性值转换为像素。

已经获得了一些将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);

最新更新