关于android:为什么宽度为600dp的视图会占用我所有的Nexus 5的横向宽度?

Why does a view with 600dp width take up all of my Nexus 5's landscape width?

本问题已经有最佳答案,请猛点这里访问。

我在values/dimens.xml中指定按钮的宽度为600dp,但是当我在Nexus 5上部署并运行它时,它会占用横向方向上的所有可用宽度。

我的活动仅在横向模式下运行,正如我在清单文件中指定的那样。 布局位于layouts目录中。 图像位于'drawable-xxhdpi'目录中,它们看起来很好,但我在dp中指定的所有内容都被放大了。

Android Studio和实际设备中的预览似乎表现为它们应该是1920时的最大宽度为600dp。为什么这样,我该如何解决?


景观Nexus 5上显示器的物理宽度为1920像素,但是600dp!= 600px。 Nexus 5的显示密度约为445 ppi。 dp是仅中等密度(160ppi)的像素。 因此,dp中指定的所有内容将按比例约为445/160 = 2.78125。 所以600dp实际上大约是1669像素。 这应该占你所看到的大部分内容。

您的布局可能还有一些拉伸按钮。 如果您发布布局xml,我们可能会提供更多信息。