0

每次,当我向可绘制文件夹提供资源时,这就是我所做的

drawable-xhdpi (96x96 px)
drawable-hdpi  (72x72 px)
drawable-mdpi  (48x48 px)
drawable-ldpi  (36x36 px)

大多数时候,我只是使用 GIMP 从drawable-xhdpi. 我不对按比例缩小的图像进行任何进一步的像素编辑。

最近,我意识到,如果我只提供 1 个最高分辨率的图像,Android 系统会在内部执行图像尺寸缩小。

drawable-xhdpi (96x96 px)
drawable-hdpi  (empty)
drawable-mdpi  (empty)
drawable-ldpi  (empty)

我在 2 台设备上进行了测试。这个对我有用。我想知道这是一种避免提供这么多不同尺寸图像的繁琐工作的好方法吗?这种技术有副作用吗?

4

2 回答 2

1

我想知道这是一种避免提供这么多不同尺寸图像的繁琐工作的好方法吗?这种技术有副作用吗?

我想有(至少)两个:

  1. 这可能并不总是适用于 9-patch,尤其是当可拉伸区域由一个或多个单个像素定义时。例如,如果您将提供这样的 9patch 作为 xhdpi drawable,那么在 mdpi 设备上,该单个像素将有效地“减半”,因此要么完全消失,要么与周围的透明像素混合。后者通常适用于任何高档/低档操作,因此您的 9patch 很可能不会按预期显示。

  2. 较大的图像只会占用更多的内存空间。特别是在低端设备上,内部内存有限,堆空间限制相当严格,当加载的图像比显示所需的大得多时,您可能会很快耗尽内存。


关于您的评论:如果您仅将其作为 xhdpi 资源提供,那么很容易想出一个示例 9patch,它在所有不同的屏幕密度上都不会在视觉上看起来像预期的那样。考虑以下 9patch:

在此处输入图像描述

为了可见性而放大的快照:

在此处输入图像描述

显然,这个想法是当这个 9patch 被拉伸时,结果是一条 1 像素粗的水平蓝线。现在,将这个 9patch 放到 xhdpi 文件夹中,然后比较 xhdpi 和 mdpi 的结果:

在此处输入图像描述

显然,mdpi 设备已经从 xhdpi 文件夹中缩小了 9patch,结果看起来并不像预期的那样。

无论如何,我的观点是,在很多情况下,不为每个密度桶提供 9 个补丁可能最终看起来还不错。请注意,在某些情况下,它可能无法给出预期的结果。另外,请考虑内存参数。

于 2013-03-03T04:58:22.460 回答
0

您使用的技术将适用于较少数量的设备。因为市场上有很多具有不同分辨率和不同尺寸的手机。在一些屏幕尺寸较小的低分辨率设备中,UI 看起来不合适......现在举个例子,您正在使用分辨率为 720*1280(xhdpi) 的背景图像作为初始屏幕,并且您已将其放入 Xhdpi drawable 文件夹比当您在三星euopa 或HTC wildfire 等低端设备中查看此drawable 时,图像看起来会被挤压类型。

还有很多其他情况需要您使用不同的图像集....如果您提到的技术适用于所有手机,那么为什么Android会为不同的图像集开发不同的文件夹.... :P

于 2013-03-03T03:31:13.353 回答