我有一个字符串数组,我使用Android图形库(Canvas,Paint)在屏幕上绘制了这些字符串。首先,绘制一个透明的矩形,然后在这个矩形上绘制字符串,给出带边框线和填充文本的印象。
问题是有些字符串很长而有些字符串很短,如何修改矩形以使其长度和字符串一样宽? (与textView中的WRAP_CONTENT一样)
目前我正在使用此方法
canvas.drawRect(_x-10, _y-10, _x+620, _y+30, rectanglePaint);
canvas.drawText(placeName, _x, _y, textPaint); //text
如果有更好的方法,请告诉我。
注意:它将在AR应用程序中使用,因此当移动设备移动时,文本将从左向右移动,反之亦然。 _x,_y的地名在第二行完美运行,我想文字应该保持突出显示,无论移动设备如何移动。
答案 0 :(得分:0)
Paint有一个measure text方法,如果要用该绘制绘制,它将给出文本的宽度。它的get font metrics可能会为您提供一些可以计算高度的数据。文本的大小,定位,包装和渲染是一个非常复杂的问题,我建议在ViewGroup中使用子TextView(带背景),而不是在你做任何复杂的事情时尝试自己动手。