android - 将可绘制文件夹从 'large' 重构为 'sw123dp'

标签 android

该项目的前任开发人员根据 large 或 xlarge 制作了所有可绘制文件夹。我们重构了布局和值以利用“sw”文件夹。 large 和 xlarge 的可绘制文件夹如何映射?

这是有问题的文件夹:

  • 可绘制
  • drawable-mdpi
  • drawable-hdpi
  • drawable-xhdpi
  • drawable-xxhdpi
  • drawable-xxxhdpi
  • drawable-large
  • drawable-large-hdpi
  • drawable-large-xhdpi
  • drawable-large-xxhdpi
  • drawable-large-xxxhdpi
  • drawable-xlarge

我想按原样保留手机文件夹(未标记为 large 或 xlarge 的文件夹),但将其他文件夹转换为 sw 文件夹。 有人知道这些文件夹的正确 sw 等价物吗?

最佳答案

来自 this链接,我们看到:

hdpi: High-density screens; approximately 240dpi.
xhdpi: Extra-high-density screens; approximately 320dpi. Added in API Level 8

large: Screens that are of similar size to a medium-density VGA screen. The minimum layout size for a large screen is approximately 480x640 dp units. Examples are VGA and WVGA medium-density screens.

至于 smallestWidthsw,它表示如下:

您可能会在此处用于常见屏幕尺寸的一些值:

320, for devices with screen configurations such as:
240x320 ldpi (QVGA handset)
320x480 mdpi (handset)
480x800 hdpi (high-density handset)
480, for screens such as 480x800 mdpi (tablet/handset).
600, for screens such as 600x1024 mdpi (7" tablet).
720, for screens such as 720x1280 mdpi (10" tablet).

编辑:

可绘制对象标有后缀的顺序很重要。 例如:
在这种情况下,drawable-large-hdpi 将选择
large属性第一,意思是它的像素密度大约为480*640 dp单位。然后,
hdpi 大约为 240dpi。 Android 将根据设备运行时的每英寸设备点数使用 hdpi。

我相信 480*640 将转换为 layout-sw600dp,最小宽度为 600dp 的屏幕。通常用于对角线尺寸为 7 英寸屏幕的平板电脑。

为了安全起见,你可以在layout-sw600dp-hdpilayout-sw600dp-xhdpi下新建一个文件夹,测试一下,看看在hdpi和xhdpi上运行如何平板电脑。

注意: 请记住,创建以前文件夹的开发人员 e.g: drawable-large-hdpi 可能已经把他们想要的任何东西放在了任何地方。所以这并不意味着 drawable-large-hdpi 中的图像一定是 480*640 尺寸并且仅适用于 hdpi 设备。

关于android - 将可绘制文件夹从 'large' 重构为 'sw123dp',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932202/

相关文章:

java - Cloud Firestore 中的值在求和运算期间重复

android - arduino和android之间通过蓝牙进行数据传输。 NPE 问题

java - 从列表中清除应用程序缓存

android - 无论如何在android中读取设备联系人列表

java - 通过 Android Activity 类访问创建变量

android - getItemAtPosition() 不在 ListView 中返回值

android - 如何从 Observable 获取多种数据类型,因为仅接受 Observable<T> 的一种泛型类型

Android - sqlite 内容提供者和多线程

android - 以编程方式添加 TextView 时,setOnFocusChangeListener 不起作用

android - 如何正确显示位图?