【发布时间】:2015-08-11 10:55:34
【问题描述】:
我正在 Xamarin 中创建自定义控件,其中包含一个矩形。 我在我的 pcl 中为矩形高度提供了一个可绑定属性。
当我在 Android 和 iOS 中通过此高度时,Android 设备(运行 KitKat 的 Nexus 5)和 iOS(运行 iOS8.4 的 iPhone 5)的高度不同。
我知道有密度和屏幕分辨率、DPI 和 PT 等概念,但我不知道当我在 iOS 和 Android 中将 100 作为矩形的高度传递时会发生什么。
它是否将其视为 DPI/PT?如果没有,我该如何实现?
编辑:
它是 Xamarin Forms 代码。
便携式项目具有自定义控件和其中的 BindableProperty,其数据类型为 int,命名为 RectHeight。
然后在适用于 Android 和 iOS 的 customrenderer 中,在 OnElementChangedProperty 方法中,我编写代码为 Android 中的 Rect 和 iOS 中的 CGRect 分配高度。
编辑:
我想在自定义控件中以 int 形式提供尺寸,然后将值放入 Android 和 iOS 中,这样无论屏幕分辨率或密度如何,两个操作系统中的高度看起来都相同。这就是为什么提到 DPI 和 PT
【问题讨论】:
-
您是如何发现差异的?由于显示分辨率不同,矩形可能看起来不同。
-
我所说的不同的屏幕分辨率可能是原因,如果是这种情况,我需要一个通用的方法。
-
这是经典的 Xamarin 还是 Xamarin Forms?我假设形式。另外,当您说高度不同时,是相对于屏幕高度显示的高度还是用尺子测量的实际高度?无论哪种方式,您都在寻找一些特定于平台的渲染器来实现这一点。您是否有代码可以显示您目前拥有的内容?
标签: android ios xamarin xamarin.ios xamarin.android