我正在尝试使用 Android SDK 中的 Draw9Patch 工具,但在使用 Draw9Patch 打开我的图像后,它立即将我的所有图像区域显示为“坏补丁”。我手动绘制了定义可拉伸区域的线条,但是我不确定这是否能正常工作。有人可以解释为什么这个特定的图像不是一个“好补丁”吗?这个问题的其他 Stackoverflow 答案似乎与我的问题无关,或者我不理解它们。
我正在尝试使用 Android SDK 中的 Draw9Patch 工具,但在使用 Draw9Patch 打开我的图像后,它立即将我的所有图像区域显示为“坏补丁”。我手动绘制了定义可拉伸区域的线条,但是我不确定这是否能正常工作。有人可以解释为什么这个特定的图像不是一个“好补丁”吗?这个问题的其他 Stackoverflow 答案似乎与我的问题无关,或者我不理解它们。
迟到的答案,但似乎 9patch 工具正在分析您的拉伸区域的像素是否有所不同,这意味着一个条带与可拉伸区域中的其他条带不同,如果不小心这样做可能会产生难看的拉伸伪影。
我做了一个小(丑陋)的例子来形象化:
在第一张图片中,没有坏补丁(除了中间的,忽略它)。
那是因为拉伸的区域都是一样的颜色,像素条都是一样的:
然而,在第二张图像中,顶部和底部也被标记为坏,因为渐变从那里开始并且水平像素条不再与其余部分相同(它们包含更多的蓝色/红色),如果出现这种情况,这可能会导致伪影无故使用:
我认为您的边界可能是问题所在:
来自 developer.android.com:
“边框用于定义图像的可拉伸和静态区域。您可以通过在边框的左侧和顶部(另一个“
看起来您有填充框,但图像和框之间没有空格。这意味着 Android 可能将它们解释为边框,而不是填充框(我相信)。
尝试在图像周围制作 1 像素的黑色边框。填充框是可选的,但应与图像隔开一些透明像素。
大多数情况下,我建议尽量接近您在此处找到的示例。
希望有帮助。
您应该尝试在按钮上定义一个像素的拉伸区域。你没有渐变效果,所以结果是一样的。坏补丁通常由左侧拉伸定义生成。