0
我有一个字符串数组,并使用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代表地名在第二行完美呈现,我希望文字应该保持突出显示,无论移动设备如何移动。
有没有一种方法可以得到文本在屏幕上覆盖的长度?例如,为了简单起见,例如可以说,如果我在矩形中包含单词“hello”,我如何获得该矩形bcx的长度,一旦我得到它,就完成了。 – aqarain
'textPaint.measureText(“hello”)'应该给你的长度(以像素为单位) – FunkTheMonk
非常感谢,先生,这对我有用:) float len = textPaint.measureText(placeName); canvas.drawRect(_x-10,_y-10,_x + len + 15,_y + 30,rectanglePaint); canvas.drawText(placeName,_x,_y,textPaint); //文本 – aqarain