20

我们使用 9png 主要是为了减小 apk 的大小。但是,我面临一个特殊的问题。我不确定我必须将 9pngs 放在哪个文件夹中。我已将它们放在 HDPI 文件夹中。由于 Android 很“聪明”,因此如果我在 MDPI 手机中使用该应用程序,它会“缩放” 9png,从而产生疯狂的效果。直到我在 Galaxy note 中尝试它之前,我没有遇到任何重大问题。看起来 9png 是取自 HDPI 并缩放(注意有 800x1280),它产生了奇怪的效果。

  • 那么哪个是放置 9png 的正确位置?
  • 如何根据放入的文件夹告诉 Android 系统不要“缩放”9png?
4

3 回答 3

15

根据 Romain Guy对 Google 群组的回答:

收缩时 9-patch 的行为未定义。在实践中,您会看到 9patch 各个部分的重叠。不要这样做:)

从我在项目中注意到的情况来看,9PNG 就像任何常规 PNG 一样按比例缩小,所以我通常会向我们的设计师请求 和 的整个图像集ldpi, mdpi, hdpixhdpi并且我将它们全部转换为 9 个补丁。

除非有一个非常简单的 9patch,比如一个普通的按钮背景,在拉伸或收缩时没有区别,所以我通常将它放在常规drawable文件夹中。

于 2012-05-03T10:40:35.020 回答
11

我在使用九个补丁图像时遇到了类似的问题:如果我将它放在文件夹中,它在屏幕上res/drawable不起作用(它扭曲了图像并失去了透明度)。ldpi

我的解决方案是将它放在res/drawable-nodpi文件夹中。该文档指出:

这可用于您不希望缩放以匹配设备密度的位图资源。

于 2012-05-16T15:41:07.830 回答
0

只需将 9png 放入 HDPI 文件夹即可。

如果 Galaxy Note 中的效果看起来很奇怪。

请设计师为您提供一个新的 9png XHDPI 文件。然后将新文件放在文件夹 XHDPI 中。

于 2012-05-03T09:24:55.227 回答