【问题标题】:How to convert the margin, padding, width and height values to pixel(px) in Xamarin forms?如何在 Xamarin 表单中将边距、填充、宽度和高度值转换为像素(px)?
【发布时间】:2020-12-23 21:55:42
【问题描述】:

Xamarin 表单 控件具有 ma​​rginpaddingwidth 和 height 属性,如何将此属性值转换为像素。

已经获得了一些将 db 转换为 px 的参考链接,但默认的 xamarin 格式是 px 还是 db 是个疑问?

public float convertDpToPx(Context context, float dp) 
{
  return dp * context.getResources().getDisplayMetrics().density; 
}

Converting pixels to dp

在 xamarin(uwp、Android 和 iOS) 中是否可以将宽度和高度值转换为像素?

提前致谢。

【问题讨论】:

标签: c# ios xamarin xamarin.forms uwp


【解决方案1】:

dp是Density-Independent-Pixels,dp在Android开发中常用来适配手机。谷歌规定,当 1 英寸屏幕上有 160 像素(px)时,则 1dp=1px=1dpi。

android dp的目的是自适应手机不同尺寸和分辨率,一个dp值可以让Android系统自动选择匹配的资源。也就是说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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多