九宫格图像显示出奇怪的行为?

3
我正在创建一个Android应用程序,其中包含聊天功能。我有两种聊天气泡 - 蓝色气泡代表其他用户,橙色气泡代表已登录的用户。我正在使用Nine-patch图像来创建这些气泡,因为气泡可以被拉伸。
蓝色气泡中的文本显示得很好 - 正中间(如下图所示)。但是橙色气泡中的文本会在图片上边界之后有一些垂直间隙。我无法弄清楚为什么会发生这种情况。两个气泡具有相同的属性,并且已按照相同的过程创建。请帮忙解决。提前致谢。
这里是橙色聊天气泡:orangebubble

1
如果您将九宫格图片本身添加到帖子中,那么这将非常有帮助,否则很难理解。 - kingraam
请发布您的橙色九宫格图像。 - Kevin Coppock
好的。我正在上传那个。 - Yogesh Somani
@kcoppock,@kingraam:我已经上传了橙色聊天气泡。请看看是否有任何问题。 - Yogesh Somani
2个回答

5
问题出在九宫格图像中...右边的边框定义了内容的位置,而你让它从气泡尖部下方开始。将边框延伸到你想要内容开始的位置,就可以解决问题了!
为了澄清:右边和底部的边框定义了内容可以放置的区域,而上面和左边的边框则定义了图像需要拉伸时将被重复的区域。
试试这个: enter image description here

另外,你在左侧加了一条线来拉伸气泡的指向部分!你只需要在顶部和左侧各有一个像素 -- 即与箭头不相交的横截面。 - Kevin Coppock
@kcoppock: 我不明白你想说什么。 - Yogesh Somani
我已经编辑了我的答案,包括一个修正后的图像。希望这会让它更加清晰。在这种情况下,顶部和左侧边框只需要1像素,因为它们定义了当图像需要变大时应该被拉伸的像素。你之前在左侧的线条包括了尖尖的部分,所以那个部分被拉伸了。 - kingraam
@PadmaKumar 是的,它会,但这取决于您的最终目标是什么。如果箭头应该保持居中,他应该放置另一个点。如果箭头应该保持在顶部,那么现在就可以了。 - Kevin Coppock
是的 - 我假设箭头顶部到顶部的距离应该保持不变。 - kingraam

0

draw9 可以按照您的要求进行拉伸。

//您的图像宽度太长了。使用这个作为参考。 //对于我来说,这张图片可以很好地用于左侧。

如果在箭头上方右侧放一个点,您的橙色聊天气泡也可以正常显示。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接