我在MDPI / HDPI / xhdpi中有相同的9补丁图像。是否有特殊原因导致它不能保存为最小尺寸?当内容较大时,可伸展区域会自动缩放,例如背景为9补丁。
背景示例:
MDPI:
hdpi:
xhdpi:
答案 0 :(得分:30)
许多九个补丁非常小,通常不需要为不同的屏幕尺寸重新创建它们。
在您的示例中,背景的角不会缩放。如果你只是在所有分辨率上使用相同的角落,它们在不同的分辨率上会有不同的大小。在较小的手机上,角落在较大的手机上会显得更大,角落看起来会更小。
另一个例子是一条线。如果你有一条具有特殊效果的线,你可以将它创建为mdpi屏幕的九个补丁,并且该线是两个像素高。只是在xhdpi屏幕上重新使用这个可绘制而不缩放会使你的线在这个屏幕上高两个像素。但是因为屏幕具有较小的像素(较高的分辨率,相同的显示尺寸),所以该线看起来更细。
因此,您始终需要为每个分辨率创建一个9-Patch,或者@Shubhayu表示只生成高分辨率的九个补丁,并且如果系统将其缩小以用于其他分辨率,则接受它们变得模糊。
答案 1 :(得分:6)
您不需要在所有3个文件夹中放置不同大小的9补丁图像。只需将分辨率最高的一个放入drawable文件夹即可。 Android会为你所有不同的密度选择它。
图像的清晰度也取决于图像的分辨率。如果保存最小尺寸(即分辨率最低),您会看到高密度设备出现模糊拉伸。如果背景图像为纯色,则不会显示。当背景有一些设计/可重复的渐变时,你会注意到差异。
编辑:自写这篇文章以来,我发现了很多关于9补丁的内容。 9个补丁图像不会缩小。最好是放置最小尺寸的图像。根据它寻找其他密度的方式,你应该为受影响的密度制作9个补丁图像。以下是更多细节,
http://www.shubhayu.com/android/9-patch-image-designers-vs-developers