android - 如何在 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使用。
解决方案
所以是的,你会在 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)
所以是的,这就是你如何为不同的屏幕尺寸设置不同的布局
推荐阅读
- javascript - 使用 React Context API 进行 GTM 跟踪
- git - 如何列出包含提交更改的所有标签?
- spring - 如何操纵我的审计项目以在 Spring Boot 中持续存在
- unity3d - Unity 中的 Alembic 文件在 Hololens2 上不可见
- php - Yii2 显示来自 blob 数据库字段的图像
- html - 是否可以从不同的文件编辑 HTML 页面?
- wso2 - 将用户证书存储到 WSO2 IS 帐户中
- vue.js - nuxt.js 和 synfusion ej2 导航菜单
- python - dynamoDB update_item 方法 - 关键元素不匹配模式错误只是不去。尝试了一切
- outlook - 运行 Outlook COM 加载项(在 Windows 上的本机 Outlook 中)时,如何使用 Office.js API 获取委派日历的用户电子邮件?