Android 坏的';补丁';在9-Patch文件中

Android 坏的';补丁';在9-Patch文件中,android,nine-patch,Android,Nine Patch,我正试图使用Android SDK中的Draw9Patch工具,但在使用Draw9Patch打开图像后,它立即将我的所有图像区域显示为“坏补丁”。我手动绘制了定义可拉伸区域的线条,但我不确定这是否能正常工作。有人能解释为什么这个特定的图像不是一个“好补丁”吗?这个问题的其他答案似乎与我的问题无关,或者我不理解它们 我认为您的边界可能是问题所在: 来自developer.android.com: “边框用于定义图像的可拉伸区域和静态区域。您可以通过在边框的左侧和顶部绘制一条(或多条)1像素宽的黑

我正试图使用Android SDK中的Draw9Patch工具,但在使用Draw9Patch打开图像后,它立即将我的所有图像区域显示为“坏补丁”。我手动绘制了定义可拉伸区域的线条,但我不确定这是否能正常工作。有人能解释为什么这个特定的图像不是一个“好补丁”吗?这个问题的其他答案似乎与我的问题无关,或者我不理解它们


我认为您的边界可能是问题所在:

来自developer.android.com:

“边框用于定义图像的可拉伸区域和静态区域。您可以通过在边框的左侧和顶部绘制一条(或多条)1像素宽的黑线来指示可拉伸区域(其他边框像素应为完全透明或白色)。您可以拥有任意多个可拉伸截面:它们的相对大小保持不变,因此最大截面始终保持最大。”

看起来您有填充框,但图像和框之间没有空格。这意味着Android可能会将它们解释为边框,而不是填充框(我相信)

尝试在图像周围制作一个1像素的黑色边框。填充框是可选的,但应通过一些透明像素与图像分开

大多数情况下,我建议尽量接近您找到的示例


希望有帮助

老了,但我有同样的问题。“坏补丁”肯定会让人困惑,但不会阻止你的drawable工作。开发网站说,这基本上是一个警告,那些补丁网站​.


若你们看很多Android Drawable的股票,你们会发现它们包含“坏补丁”。所以只要测试一下,如果它们看起来不错,我就不担心了。

你应该尝试在按钮上定义一个单像素的拉伸区域。你没有梯度效果,所以结果是一样的。坏补丁通常由左侧拉伸定义生成。

稍后回答,但9patch工具似乎正在分析拉伸区域的像素是否变化,这意味着一个条带与可拉伸区域中的其他条带不同,如果意外操作,可能会产生丑陋的拉伸瑕疵

我做了一个小的(丑陋的)例子来形象化:
在第一幅图像中,没有不好的补丁(除了中间的补丁,忽略它)。
这是因为拉伸区域的颜色都相同,所以像素条都相同:

然而,在第二幅图像中,顶部和底部部分也被标记为不好,因为渐变从那里开始,并且水平像素条不再与其他部分相同(它们包含更多的蓝色/红色),如果使用不当,可能会导致伪影:

我找到了制作9-patch图像的最佳和最简单的答案

从中,只需单击一下,就可以为所有分辨率(XHDPI、HDPI、MDPI和LDPI)制作一个9面片图像

如果您有任何疑问,请告诉我,如果对您有帮助,请进行投票


我刚刚发表了一篇关于坏补丁的中篇文章。它解释了坏补丁的基本逻辑,并包含了一些克服它们的建议。请随意查看:


我在图像周围添加了一个1像素的黑色边框,但这并没有改变结果。“坏补丁”肯定会让人困惑,但不会阻止你的绘图功能。开发网站说,这基本上是一个警告,那些补丁网站。若你们看很多Android Drawable的股票,你们会发现它们包含“坏补丁”。所以只要测试一下,如果它们看起来不错,我就不用担心了。这就是我最近发现的答案。你应该把它作为一个真实的答案而不是评论来发布,我会把它标记为接受(因为其他答案是误导性的)。PureSpider的答案是正确的。也不确定你是否能重新接受正确的答案。你的图像有渐变。你所需要的只是拉伸1个或几个像素来保持梯度。它将有助于消除那些不好的补丁,特别是在HTC One X和Galaxy S3等新的更大屏幕上,你会看到它们之间的区别。就连我也面临着同样的问题。谢谢普拉蒂克,你的回答很有效。