Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为iOS和Android设备的DPI定义点高度_Android_Ios_Xamarin_Xamarin.ios_Xamarin.android - Fatal编程技术网

为iOS和Android设备的DPI定义点高度

为iOS和Android设备的DPI定义点高度,android,ios,xamarin,xamarin.ios,xamarin.android,Android,Ios,Xamarin,Xamarin.ios,Xamarin.android,我正在Xamarin中创建一个带有矩形的自定义控件。 我为pcl中的矩形高度提供了一个可绑定属性 当我在Android和iOS中通过这个高度时,Android设备(运行KitKat的Nexus 5)和iOS(运行iOS8.4的iPhone 5)的高度是不同的 我知道有密度和屏幕分辨率、DPI和PT等概念,但我不知道在iOS和Android中,当矩形的高度超过100时会发生什么 是否将其视为DPI/PT?如果不是,我怎么能做到这一点 编辑: 这是Xamarin表单代码 Portable proje

我正在Xamarin中创建一个带有矩形的自定义控件。 我为pcl中的矩形高度提供了一个可绑定属性

当我在Android和iOS中通过这个高度时,Android设备(运行KitKat的Nexus 5)和iOS(运行iOS8.4的iPhone 5)的高度是不同的

我知道有密度和屏幕分辨率、DPI和PT等概念,但我不知道在iOS和Android中,当矩形的高度超过100时会发生什么

是否将其视为DPI/PT?如果不是,我怎么能做到这一点

编辑:

这是Xamarin表单代码

Portable project中有一个自定义控件和一个BindableProperty,数据类型为int,命名为
RectHeight

然后在Android和iOS的customrenderer中,在OnElementChangedProperty方法中,我编写代码,为Android中的
Rect
和iOS中的
CGRect
分配高度

编辑:

我想在自定义控件中提供int维度,然后在Android和iOS中输入该值,这样无论屏幕分辨率或密度如何,两个操作系统中的高度看起来都一样。这就是为什么提到DPI和PT的原因。请看一下XLabs上的实现。您可以从IDevice实现中获取实例。这将获得运行时显示属性,并提供扩展方法,如从英寸获取表单高度/宽度请求值。我写它们就是为了这个目的,以确保在我需要它们的时候得到精确的尺寸

有关示例,请参见


您可以使用源代码,也可以从NuGet安装XLabs.Forms包。出于您的目的,您最有可能使用XDpi和YDpi属性来计算本机值。如果您不需要任何其他XLabs功能,那么我建议您将一些例程(尤其是iOS功能,因为Android和WP在运行时更容易确定)复制到您的代码中,作为扩展。

您是如何发现差异的?因为不同的显示分辨率,rectange可能看起来不同。这就是我所说的不同屏幕分辨率的原因,如果是这样的话,我需要一个通用的方法。这是经典的Xamarin还是Xamarin形式?我正在采取行动。另外,当你说高度不同时,是显示的高度相对于屏幕高度还是实际高度,比如说用尺子测量的高度?无论哪种方式,您都可以使用一些特定于平台的渲染器来实现这一点。您是否有代码显示到目前为止的情况?