我在我的应用程序中使用 dip 作为单位。我发现,不同设备上的宽度并不精确,例如:292 dip width 会在 160 和 320 dpi 设备上导致不同的结果。
这是我的基本方法:
<ImageView id="panelImage" width="292" image="/images/loginPanel.png"></ImageView>
在显示元素之前,我检查设备密度因子(使用 Ti.Platform.displayCaps.logicalDensityFactor)并使用 160/Ti.Platform.displayCaps.logicalDensityFactor 放大图像宽度,如下所示:
$.panelImage.width = $.panelImage.width * 160 / Ti.Platform.displayCaps.logicalDensityFactor;
它有效,但我的问题是我必须重新计算每个项目的尺寸值......还有其他解决方案吗?
最好的是这样的(但它不起作用!!!):
<ImageView id="panelImage" width="(292*160/Ti.Platform.displayCaps.logicalDensityFactor)" image="/images/loginPanel.png"></ImageView>
(因此,我尝试在 Alloy View 定义 XML 文件中使用乘法。)
任何想法?