我正在开发一个本机 Android 应用程序,并正在考虑管理图像资源的最佳方式。传统上,我们建议我们将每个图像的多种尺寸存储在各种可绘制文件夹(
drawable-mdpi
、drawable-hdpi
、drawable-xhdpi
、drawable-xxhdpi
和drawable-xxxhdpi
)中,以匹配不同的设备屏幕密度。然而,我质疑这种方法在今天是否仍然相关或必要。
考虑到 Android 在处理图像和屏幕密度方面的进步,在 asset 文件夹中仅存储单个高分辨率图像(例如,将原始 100x100 图像存储为 400x400 图像)并在 asset 文件夹中动态调整其大小是否更有效或更有利?基于设备屏幕密度的应用程序?
例如,对于最初尺寸为 100x100 的图像:
传统上,我会存储这些变体:
drawable-mdpi = 100x100
drawable-hdpi = 150x150
drawable-xhdpi = 200x200
drawable-xxhdpi = 300x300
drawable-xxxhdpi = 400x400
但是,在像 Google Pixel 7 这样屏幕密度系数为 2.625 的设备上,系统会从
drawable-xxhdpi
检索 300x300 图像,然后将其大小调整为 263x263px。这会导致图像大小被调整两次,可能会降低其质量。
我注意到许多应用程序似乎主要将图像存储在资产文件夹中,而不是在可绘制目录中。谁能确认这是否是一种常见做法? 2024 年,在 Android 应用中处理图像以平衡图像质量和应用性能之间的推荐方法是什么?