5

我正在创建一个需要多屏幕支持的 android 应用程序。为此,我使用了 9 个补丁图像。

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

提前致谢

4

3 回答 3

17

我最近发现自己处于同样的情况,所以让我加入并扩展已经说过的话......

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

但是,假设您的按钮设计对于 hdpi 版本有一些非常圆的角。您创建 9-patch 图像而不会弄乱角落,但是当您在 ldpi 版本中查看它时,您会意识到您的角落对于低分辨率来说太大了。对于这种情况,您需要一个不同的 9-patch 图像,其圆角较少,在该分辨率下看起来更好。

所以,最终的答案是,这真的取决于你的形象。如果您可以创建一个在所有密度下看起来都不错的 9-patch 图像,那就很好,使用它,因为您只需要一个图像来处理所有密度。但是,如果由于边角、渐变或其他原因,它看起来不太好,那么每个屏幕密度都需要一个 9-patch 图像。

希望现在更清楚了。

于 2011-10-04T18:08:41.840 回答
2

来自文档:九个补丁

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

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

于 2011-09-28T12:51:05.390 回答
0

简短的回答是肯定的。检查这个:

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

来自 Android 开发者官方文档

于 2016-06-01T07:50:55.180 回答