从错误的文件夹中获取的尺寸值

时间:2016-06-16 12:35:57

标签: java android layout dimensions material

我已经制作了几个值文件夹和dimen.xml文件,用于为不同的屏幕尺寸配置我的应用程序。 Android Studio中的预览可以很好地显示它们,但是当我在手机上运行应用程序时,这些尺寸不会生效。 Android Studio布局中显示的布局和手机上显示的布局不同。

例如,在我的nexus 5上,应用程序应该从 values-w640dp / dimen.xml 中读取维度,但是,它会从 values / dimen.xml 中读取它们奇怪的原因。

我该怎么做才能解决它?

以下是截图。

Android Studio预览快照(Nexus 5)

enter image description here

Nexus 5手机屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

所以dp使用以下公式计算:

pixels / dp = dpi / 160dpi or pixels / dp = density

device metrics,Nexus 5的密度为3,所以:

dp = pixels / density
dp = 1920px / 3 = 640dp
dp = 1080px / 3 = 360dp

使用 values-sw600dp 无法修复它,因为它不是屏幕的实际最小宽度,因为它也可以是360.所以你应该使用 values-sw300dp 。但请注意,这涵盖了各种各样的设备。 values-sw600dp 通常以平板电脑为目标。

我也遇到了设备的真实分辨率与仿真器创建的分辨率不匹配的问题,也是Nexus 5,因此请务必检查AVD屏幕并确保分辨率与设备的真实分辨率相匹配。例如,Nexus 5应该是1920x1080而且它是。如果您遇到此问题,请重新创建模拟器或完全尝试不同的模拟器。

enter image description here