【发布时间】:2021-05-03 07:54:21
【问题描述】:
我正在创建具有绝对像素分辨率的布局。例如 10801920 , 10802160 对于这些像素分辨率,我正在创建布局 XML 文件。
就像上面提到的图片。但是我将背景颜色黑色添加到默认值,红色添加到 19201080。对于具有该像素分辨率的 19201080 模拟器不采用红色。我这样做是为了在 Android 中为不同的屏幕尺寸创建不同的 UI
【问题讨论】:
我正在创建具有绝对像素分辨率的布局。例如 10801920 , 10802160 对于这些像素分辨率,我正在创建布局 XML 文件。
就像上面提到的图片。但是我将背景颜色黑色添加到默认值,红色添加到 19201080。对于具有该像素分辨率的 19201080 模拟器不采用红色。我这样做是为了在 Android 中为不同的屏幕尺寸创建不同的 UI
【问题讨论】:
Android 不建议采用这种方法。检查下面的链接和我引用的注释。
https://developer.android.com/training/multiscreen/screensizes
注意:您使用这些限定符指定的尺寸不是实际的屏幕尺寸。相反,尺寸是针对活动窗口可用的宽度或高度(以 dp 为单位)。 Android 系统可能会将部分屏幕用于系统 UI(例如屏幕底部的系统栏或顶部的状态栏),因此部分屏幕可能无法用于您的布局。如果您的应用程序在多窗口模式下使用,那么您的应用程序只能访问该窗口的大小。当窗口调整大小时,它会触发配置更改为新的窗口大小,以便系统可以选择适当的布局文件。因此,您声明的尺寸应该专门针对您的 Activity 所需的尺寸——系统在声明它为您的布局提供多少空间时会考虑系统 UI 使用的任何空间。
【讨论】:
您遵循的方法将不起作用。您应该在不同的文件夹中创建您的活动,名称为
layout-sw720dp 用于平板 10"
res/layout-sw720dp/main_activity.xml
所以最后你的文件夹结构可能如下所示:
res/layout/main_activity.xml -> for handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml -> for 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml -> for 10” tablets (720dp wide and bigger)
【讨论】: