如何在android中使用9个补丁图像来获得不同的密度(如mdpi,ldpi,hdpi)。

时间:2011-09-28 12:42:42

标签: android image nine-patch

我正在创建一个Android应用程序,我需要多个屏幕支持。对于这些我使用了9个补丁图像。

但我的问题是,使用9个补丁图像是否足以用于不同密度的设备,或者我需要创建不同密度的不同-2 9补丁图像(如mdpi,ldpi,hdpi)。

提前致谢

3 个答案:

答案 0 :(得分:17)

我最近在同样的情况下发现自己,所以让我介绍并扩展已经说过的话......

是的,9个补丁图像会缩放,这就是它们的存在。但是如果你应该为所有屏幕密度使用9补丁图像,那取决于图像。更常用的是9个补丁图像,例如按钮。您可以在应用程序中使用不同大小的按钮,无论您的按钮大小如何(只要正确创建9个补丁图像),9补丁图像将有助于处理它们。

但是,让我们说你的按钮设计有一些非常圆角的hdpi版本。您可以创建9补丁图像而不会弄乱角落,但是当您在ldpi版本中查看它时,您会发现角落对于低分辨率来说太大了。对于这种情况,你需要一个不同的9个补丁图像,圆角更小,在分辨率上看起来更好。

所以,最后的答案是,它真的取决于你的形象。如果您可以创建一个在所有密度上看起来都很好的9补丁图像,那么请使用它,因为您只需要一个图像来处理所有密度。但是如果它看起来不好,因为角落,渐变或其他什么,比每个屏幕密度需要一个9补丁图像。

希望现在更清楚了。

答案 1 :(得分:2)

来自文档:nine patch

  

NinePatchDrawable图形是一个可伸缩的位图图像,Android会自动调整大小以适应您将其作为背景放置的视图内容。 NinePatch的一个示例用途是标准Android按钮使用的背景 - 按钮必须拉伸以适应各种长度的字符串。 NinePatch drawable是标准PNG图像,包括额外的1像素宽边框。必须使用扩展名.9.png保存,并保存到项目的res / drawable /目录中。

答案是否定的。你的九个补丁将在不同的屏幕尺寸之间缩放

答案 2 :(得分:0)

简短回答是肯定的。 检查一下:

默认情况下,Android会缩放您的位图drawables(.png.jpg.gif文件)和Nine-Patch drawables(.9.png文件),以便它们呈现在适当的 每台设备的物理尺寸。例如,如果您的应用程序仅提供位图可绘制的 基线,中等屏幕密度(mdpi),然后系统在高密度时将它们放大 屏幕,并在低密度屏幕上缩小它们。这种缩放可能会导致伪影 位图。为确保您的位图看起来最好,您应该在其中包含替代版本 针对不同屏幕密度的不同分辨率。

from Android Developer Official Doc