C# 如何将边距、填充、宽度和高度值转换为Xamarin格式的像素(px)?
Xamarin表单具有边距、填充、宽度和高度属性的控件,如何将此属性值转换为像素 已经获得了一些将db转换为px的参考链接,但是默认的xamarin形式是px还是db是疑问C# 如何将边距、填充、宽度和高度值转换为Xamarin格式的像素(px)?,c#,ios,xamarin,xamarin.forms,uwp,C#,Ios,Xamarin,Xamarin.forms,Uwp,Xamarin表单具有边距、填充、宽度和高度属性的控件,如何将此属性值转换为像素 已经获得了一些将db转换为px的参考链接,但是默认的xamarin形式是px还是db是疑问 public float convertDpToPx(Context context, float dp) { return dp * context.getResources().getDisplayMetrics().density; } 是否可以在xamarin(uwp、Android和iOS)中将宽度和高
public float convertDpToPx(Context context, float dp)
{
return dp * context.getResources().getDisplayMetrics().density;
}
是否可以在xamarin(uwp、Android和iOS)中将宽度和高度值转换为像素
提前感谢。dp是与密度无关的像素,dp通常用于Android开发,以适应手机。谷歌规定,当1英寸屏幕上有160像素时,1dp=1px=1dpi android dp的目的是适应不同大小和分辨率的手机,dp值允许android系统自动选择匹配的资源。换句话说,dp值可以通过某种方式获得,以根据设备要求获得相应的图像资源或大小 xamarin提供了用于获取当前监视器密度的xamarin.Essentials。您可以使用dp和px的关系从px获得dp(xamrin宽度和高度的默认单位是px)
检查一下你的问题似乎与此相同:@deirahi,谢谢,我通过那个链接,需要一些澄清,我是android初学者,请解释一下为什么我们需要将db转换为px?我也没有太多经验。所以,我不知道为什么,但我想一些API和库需要像素。
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);