首页 > 解决方案 > 如何在 android 设备中使用不同的屏幕尺寸特定值

问题描述

在为设备指定尺寸值时,我遇到了一个问题,因为与其他设备相比,设备(设备 1)的高度很小,因此其中一个视图看起来被切碎了。我被要求创建一个单独的 res/values 文件夹以包含小屏幕尺寸的资源 (dimen.xml)。

我运行了“adb shell dumpsys window”命令来获取屏幕大小,如下所示。

设备 1:

mCurConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw391dp w696dp h367dp 294dpi nrml long land finger12key/v/h-nav/h s.5}

设备 2:

mGlobalConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw492dp w787dp h492dp 260dpi lrg land finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1280, 800) s.11}

设备 3:

 mCurConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw340dp w340dp h560dp 128dpi nrml long port finger qwerty/v/h dpad/v s.5}
  mHasPermanentDpad=false

设备 4:

  mCurConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw600dp w1024dp h560dp 160dpi lrg long land finger qwerty/v/h dpad/v s.5}

我需要将我的值文件夹命名为 res/values-sw391dp 吗?并且该文件夹内声明的dimen.xml是否会适用于设备1,而不会被设备2、设备3和设备4使用。

标签: androidandroid-studioandroid-layoutandroid-fragments

解决方案


所以是的,你会在 android studio 中创建新的布局。

当它要求您输入名称时,请将其命名为与您尝试复制的布局完全相同但配置不同的名称。

然后添加限定符,如你所见,高度、宽度、对角线等。

然后它会为你创建新的布局。

对于屏幕尺寸,假设您有 3 个布局:main_activity.xml、main_activity.xml(w320dp)、main_activity(w600dp)。

那么宽度小于 320 的设备将使用 main_activity.xml;

宽度在 320 到 600 之间的设备将使用 main_activity.xml(w320dp);

宽度超过 600 的设备(几乎是平板电脑)将使用 main_activity.xml(w600dp)

所以是的,这就是你如何为不同的屏幕尺寸设置不同的布局


推荐阅读