我正在尝试使用9补丁作为TextView的背景,但它被视为普通图像文件。根据9-Patch工具和Intellij IDEA布局预览,它应该可以正常拉伸。 我也在使用其他9个补丁,所以问题不在于我的系统配置错误(例如在其他情况下丢失了库)。
到目前为止我所做的清单:
Here是我想要使用的图片。
刚才我看到IDE向我抛出这些“信息”: “ERROR:9-patch image ... \ res \ drawable \ timeline.9.png格式错误。 9补丁周边的行和列太多了。“
我不知道9补丁是否有任何限制?尝试搜索文档以获取更多相关信息,但没有成功。
提前致谢, /我
P.S。:我知道可以通过删除段内的额外空间来优化图像,但那是......一旦它按预期工作,我就打算做。
答案 0 :(得分:2)
使用2个水平标记我可以使用12个垂直标记(再添加一个垂直或水平标记会产生该错误)。所以我认为它计算交叉点(H * V),根据其他答案,最大值可能是25。
<强>更新强>
基于android代码:
// Make sure the amount of rows and columns will fit in the number of
// colors we can use in the 9-patch format.
if (numRows * numCols > 0x7F) {
errorMsg = "Too many rows and columns in 9-patch perimeter";
goto getout;
}
最大值为0x7F = 127。
垂直标记被视为一列,而水平标记是一行。因此,如果每个标记中有5个标记,则表示您有 5个可伸展列+ 6个不可伸缩列(标记之间的区域),因此总共11个垂直和相同对于水平如此11 * 11 = 121小于127所以你很好
在我的情况下我有12个垂直(12 + 13 = 25)和2个水平(2 + 3 = 5)所以25 * 5 = 125仍然小于127.
答案 1 :(得分:1)
您必须在9补丁上设置文本区域。在图片的底部和右侧定义它。
答案 2 :(得分:1)
上次我查了一下:
最多可以使用5个填充标记。 最多可以使用5个缩放标记。
(更新:看起来可能超过此值。请参阅下面的其他评论。)
答案 3 :(得分:0)
我已在我的项目中测试了18个垂直标记和6个水平标记,并返回了警告太多行和列。然后我使用了18个垂直和1个水平标记,这很好:),我猜它不会超过20个。
答案 4 :(得分:0)
我也达到了极限。针对API构建17.我有一个网格,每天每小时有一列,有4行。我玩了一下,我认为限制是关于补丁交叉点的数量。因此,如果我只有一个水平补丁,我在达到极限之前将其调整到大约20个垂直补丁,但如果我有两个水平补丁,我可能只有10个垂直补丁。我尝试删除水平补丁但是你得到一个错误“沿着边缘找不到标记的区域”。但是,如果我放弃调整高度并选择整个边缘作为水平补丁,我可以添加所有24个垂直补丁。如果你让整个宽度或高度可以调整大小,我猜你可能会达到40?基于我注意到的模式,这是一个有根据的猜测。