根据字符串长度在画布上自动设置矩形长度

时间:2015-05-08 15:04:27

标签: android android-canvas

我有一个字符串数组,我使用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的地名在第二行完美运行,我想文字应该保持突出显示,无论移动设备如何移动。

1 个答案:

答案 0 :(得分:0)

Paint有一个measure text方法,如果要用该绘制绘制,它将给出文本的宽度。它的get font metrics可能会为您提供一些可以计算高度的数据。文本的大小,定位,包装和渲染是一个非常复杂的问题,我建议在ViewGroup中使用子TextView(带背景),而不是在你做任何复杂的事情时尝试自己动手。