Android 为什么600dp宽度的视图占据了我所有的Nexus 5';什么是景观宽度?

Android 为什么600dp宽度的视图占据了我所有的Nexus 5';什么是景观宽度?,android,android-layout,android-activity,android-screen-support,Android,Android Layout,Android Activity,Android Screen Support,我在values/dimens.xml中将按钮的宽度指定为600dp,但是当我在Nexus 5上部署并运行它时,它会占用横向方向上的所有可用宽度 我的活动仅在横向模式下运行,正如我在清单文件中指定的那样。布局位于布局目录中。图像位于'drawable xxhdpi'目录中,它们看起来很好,但是我在dp中指定的所有内容都被放大了 Android Studio中的预览和实际设备的表现似乎是最大宽度为600dp,而实际宽度应为1920 dp。这是为什么?我如何修复它?横向Nexus 5上的显示器的物理

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

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


Android Studio中的预览和实际设备的表现似乎是最大宽度为600dp,而实际宽度应为1920 dp。这是为什么?我如何修复它?

横向Nexus 5上的显示器的物理宽度是1920像素,但是,600dp!=600像素。Nexus 5的显示密度约为445 ppi。dp仅在中等密度(160 ppi)下为像素。因此,dp中规定的所有内容将按约445/160=2.78125的系数进行缩放。所以600dp实际上是1669像素。这应该是你看到的大部分


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

啊,对了。所以我必须在设置dimens.xml之前将每个维度除以该因子,因为我的设计是1920x1080?六羟甲基三聚氰胺六甲醚。。。那么,当
dp
已经在发挥这一神奇作用时,为什么需要在swxxdp目录下有不同的dimens.xml文件呢?@user4092233请参阅details@user4092233-我很少为不同的配置使用不同的dimens.xml文件,尽管它们有各自的用途。例如,对于不同的屏幕大小,您可能需要不同的尺寸。例如,在大屏幕上,您可能希望视图周围有1/2英寸的边距。因此,无论像素密度如何,您都可以指定80dp的边距(在mdpi设备上为80像素,但在Nexus5上更像223像素)。在较小的屏幕上,您可能只需要1/8英寸的边距,即20dp。对于与密度无关的尺寸,请使用
/res/values nodpi/dimens.xml
和px,而不是dp。