在我的应用程序中,我必须使用数百个位图图标,并且我们希望支持多个屏幕。
而且通过android developer的文档,似乎这是为不同设备创建这些图标的唯一方法dpi
。
如果这是真的,我们将努力工作,所以我想知道是否有替代方法可以避免这种情况?
在我的应用程序中,我必须使用数百个位图图标,并且我们希望支持多个屏幕。
而且通过android developer的文档,似乎这是为不同设备创建这些图标的唯一方法dpi
。
如果这是真的,我们将努力工作,所以我想知道是否有替代方法可以避免这种情况?
您可以将图像放在 /res/drawable 中,然后 Android 会根据 dpi 对它们进行缩放,以使图像保持大致相同的物理尺寸,而不管显示密度如何。在这种情况下,图像将在 MDPI 中未修改,在 HDPI 中大 1.5 倍,在 XHDPI 中大 2 倍,在 XXHDPI 中大 3 倍。
您也可以将它们放在 /res/drawable-nodpi 中,在这种情况下不会应用图像重新缩放,但这并不理想,因为相同的图像在 XXHDPI 中的物理尺寸比在 MDPI 中小 3 倍。
上述所有方法都有严重的缺点,因此最明智的方法是将正确大小的图像放在各自的 DPI 文件夹中。您的图像应该以更大的分辨率绘制,因此只需将每个图像重新缩放为不同的 DPI 大小。
请访问Android Asset Studio,该站点将提供您需要的所有类型的 dp 图标图像。
在您的情况下,请选择Generic icons section 或Menu icons section。
希望这可以帮助。
鉴于您正在处理的图标数量,手动创建每个版本的多个版本显然是不可能的。
我建议您以 xhdpi 分辨率创建图标,并提出一个自动化过程(可能使用 ImageMagick 之类的工具和您选择的脚本语言)来生成较低分辨率作为构建过程的一部分。
您不必为所有可能的像素密度提供不同的位图资源,但理想情况下,您将提供低 dpi (ldpi)、中等 dpi (mdpi)、高 dpi (hdpi) 和超高 dpi (xhdpi) 图标资源。如果您不提供以上所有内容,Android 系统会自动选择最接近的匹配资源并对其进行缩放以匹配实际屏幕像素密度。