【发布时间】:2012-03-30 10:44:26
【问题描述】:
我在 MDPI/HDPI/xhdpi 中有相同的 9-patch 图像。是否有特殊原因不会将其保存为最小尺寸?当内容较大时,可拉伸区域会自动缩放,例如背景为 9-patch。
示例背景:
mdpi:
hdpi:
xhdpi:
【问题讨论】:
标签: android nine-patch
我在 MDPI/HDPI/xhdpi 中有相同的 9-patch 图像。是否有特殊原因不会将其保存为最小尺寸?当内容较大时,可拉伸区域会自动缩放,例如背景为 9-patch。
示例背景:
mdpi:
hdpi:
xhdpi:
【问题讨论】:
标签: android nine-patch
许多九个补丁非常小,通常不需要为不同的屏幕尺寸重新创建它们。
在您的示例中,背景的角没有缩放。如果您只是在所有分辨率上使用相同的角,它们在不同的分辨率下会有不同的尺寸。在较小的手机上,角落会显得更大,在较大的手机上,角落会显得更小。
另一个例子是一条线。如果您有一条具有特殊效果的线,并且您将其创建为 mdpi 屏幕的九个补丁,并且该线是两个像素高。只需在 xhdpi 屏幕上重用此可绘制对象而不进行缩放,就会使您的行在此屏幕上高两个像素。但是因为屏幕的像素更小(分辨率更高,显示尺寸相同),所以线条会显得更细。
因此,您总是需要为每个分辨率创建一个 9-Patch,或者正如 @Shubhayu 所说,只生成高分辨率的九个补丁并接受如果系统为其他分辨率缩小它们会变得模糊。
【讨论】:
您不需要在所有 3 个文件夹中放置不同大小的 9-patch 图像。只需将分辨率最高的放在可绘制文件夹中即可。 Android 将为您所有不同的密度选择它。
此外,图像的清晰度取决于图像的分辨率。如果保存最小尺寸(即分辨率最低),您会看到高密度设备会出现模糊拉伸,如果背景图像是纯色的,这将不明显。当背景有一些设计/可重复的渐变时,您会注意到差异。
编辑:自从写了这篇文章后,我发现了更多关于 9-patch 的东西。 9 补丁图像不会按比例缩小。最好是放置最小尺寸的图像。根据它寻找其他密度的方式,您应该为受影响的密度制作 9 块图像。这里有更多关于它的细节,
http://www.shubhayu.com/android/9-patch-image-designers-vs-developers
【讨论】: