5

我曾尝试在 Android Eclipse 项目中为 Sony Xperia Z1 创建单独的值文件夹。我为 values-sw390dp 完成了。在那个 values 文件夹中,我将那个 dimen.xml 文件放在那个移动 UI 大小中。当我在那个文件夹中更改 ui 大小时,它不会反映它。但是,它会自动取 values-large 文件夹。因为,我正在开发一款适用于所有 5 英寸和 7 英寸手机和平板电脑的应用程序。我需要将我的 UI 适配为 5 英寸及以上。

http://www.gsmarena.com/sony_xperia_z1-5596.php 示例索尼 Xperia 手机型号

我已经推荐了这个网站.. 索尼 Xperia Z 的密度对我来说似乎很奇怪,我的应用程序可以正常工作吗?

//我也安装了sony xperia z1 model sdk .. http://developer.sonymobile.com/knowledge-base/sony-add-on-sdk/install-the-sony-add-on-sdk/ 我的模拟器也工作正常...

注意:我的问题只在这里..首先,我完美地为 Google Nexus 7 安装了我的 UI..当我在 Sony Xperia Z1 手机中执行我的应用程序时,会发生这种情况..

1080 x 1920 像素,5.0 英寸(~441 ppi 像素密度)= (1080 * 160) / 441 = 391.83...= 轮次 = 390 dp 这就是为什么我将这样用于 Sony Xperia Z1 值-sw390dp

谢谢提前

4

1 回答 1

6

看起来这里的问题是您计算 dp 中最小宽度的方式。您可能知道,Android 基于密度桶系统,例如 mdpi (160 dpi)、hdpi (240 dpi)、xhdpi (320 dpi) 和 xxhdpi (480 dpi) 等等。每个电话被分类为属于可用密度桶之一。该逻辑密度是实际物理密度的近似值。

Z1 的物理密度为 441 ppi,因此它属于 xxhdpi 存储桶。

所以我们有公式:px = dp * (dpi / 160) 或 dp = px / (dpi / 160)

在这种情况下,dpi = 480 和 px = 1080 所以:

dp = 1080 / (480 / 160) = 1080 / 3 = 360

所以你应该为 Xperia Z1 使用 values-sw360dp。

于 2013-11-11T18:41:09.887 回答