文字已经超出了图片的消息框范围,杂乱无章。
出现上述问题的原因是,整个背景图被完全拉伸了,而且拉伸后的图片的宽高比例与原始图片的宽高比例不同。如果只对原始图片矩形消息框中的区域进行拉伸,那么就可以解决上述问题。
为了解决上述问题,我们可以使用Android中的.9.png格式图片,即Nine-patch。
下面对.9.png格式图片进行一下说明:
首先,.9.png格式的图片本身就是.png格式图片,不过该图片以.9作为文件名的后缀。我们可以将一个.png图片转换成.9.png图片,.9.png图片比正常的.png图片在图片最外围的四边多了1px边框,我们可以在这最外层的1px边框上定义图片的可拉伸区域以及图片的内容区域。
我们对原始的背景图进行编辑,可以得到如下的文件名为message.9.png的图片:
当我们用该处理过的.9.png图片作为TextView的背景时,效果如下所示:
由上图我们可以看到,所有文本都居中放到了消息框的矩形区域中,而且图片没有失真,保持了原有图片的质感。
我们可以仔细观察一下上述的message.9.png这张图片,可以发现该图片的最外层的四边有黑点、黑线,具体来说:
可以将图片最上侧1px边框中的一个或多个点设置为黑色,本例中我们用了一条黑色的线段,这些黑色的点定义了图片中可以被横向拉伸的区域。 同样也可以将图片最左侧1px边框中的一个或多个点设置为黑色,本例中我们只用了一个黑色的像素点,这些黑色的点定义了图片中可以被纵向拉伸的区域。横向拉伸像素点与纵向拉伸像素点相交定义了图片中可拉伸的矩形区域,这样就实现了对图片中一部分区域进行拉伸。













