2012-03-30 65 views
22

我在MDPI/HDPI/xhdpi中有相同的9个补丁图像。是否有特定的原因,为什么它不能保存为最小的尺寸?可伸缩区域在内容较大时自动缩放,例如背景为9补丁。针对不同密度的不同9贴片图像?

实例背景:

MDPI: mdpi

华电国际:hdpi

xhdpi:xhdpi

回答

28

许多9个补丁是如此之小,他们通常并不需要重新创建不同的屏幕大小。

在你的例子中,背景的角落没有缩放。如果您只是在所有分辨率上使用相同的角落,他们在不同的分辨率下会有不同的大小。在较小的手机上,角落会在较大的手机上看起来更大,角落会变小。

另一个例子是一条线。如果你有一条具有特殊效果的线,并且将它创建为mdpi屏幕的九个补丁,并且该线的高度为两个像素。只需在xhdpi屏幕上重复使用此绘图而不缩放,就可以使您的线条在此屏幕上高两个像素。但是由于屏幕像素较小(分辨率较高,显示屏尺寸相同),线条显得更细。

因此,您总是需要为每个分辨率创建一个9修补程序,或者@Shubhayu表示只生成高分辨率九个修补程序,并接受系统将其缩放为其他分辨率时模糊。

+0

现在了解。对比勒费尔德的问候:-) – user949884 2012-03-30 11:21:50

+0

如果它解决了你的问题,你可以接受一个答案:) – Janusz 2012-03-30 12:01:55

+0

是的,你是对的2像素高的例子。虽然我没有看到图像缩小的问题。有可能我没有处理能够显示差异的图像。感谢提示:)下次我会记住这一点。 – Shubhayu 2012-03-30 12:04:23

6

你并不需要把不同大小的9补丁图像中的所有3文件夹。只需将具有最高分辨率的那个放在您的可绘制文件夹中即可。 Android会为您提供所有不同的密度。

此外,图像的清晰度取决于图像的分辨率。如果保存最小尺寸(即以最小分辨率),则会发生模糊拉伸,因为高密度设备会出现模糊拉伸。如果背景图像为纯色,则不会明显。当背景具有某些设计/可重复的渐变时,您会注意到不同之处。

编辑:自从写这篇文章以来,我发现了更多关于9-patch的更多内容。 9贴片图像不缩小。最好的办法是放置最小尺寸的图像。根据它如何寻找其他密度,您应该为受影响的密度制作9张补丁图像。下面是关于它的详细信息,

http://www.shubhayu.com/android/9-patch-image-designers-vs-developers

+0

它将从最高密度调整图像以匹配选定的密度,并且从其上调整大小的图像将使用九种贴片机制来拉伸图像。这将导致模糊的图像,不建议。 – Janusz 2012-03-30 11:04:54

+0

9补丁缩小?我认为只能放大。 – user949884 2012-03-30 11:06:39

+0

如果Android从mdpi手机的xhdpi文件夹中选取drawable,它将缩小图像,无论它们是否为9-patch。查看我的答案获取更多信息。我也很难学习这个;) – Janusz 2012-03-30 11:15:31