获取未修剪的字符串边界

时间:2014-05-11 13:08:20

标签: android string space trim

在我正在开发的应用程序中,我试图使用Paint在Canvas上绘制一些文本。为此,我使用:

String string = " a ";
Rect bounds = new Rect();
mPaint.getTextBounds(string, 0, string.length(), bounds);

问题是,这给了我“a”的界限,而不是“a”的界限。它删除了a之后的空格,但我不希望它这样做。

有人知道如何获得文字界限,包括字母后面的空格吗?

**编辑:**

我找到了一个解决方法:

String string = " a ";
Rect bounds = new Rect();
mPaint.getTextBounds(string, 0, string.length(), bounds);
float width = mPaint.measureText(string);
float height = bounds.height();
RectF boundsF = new RectF(x, y, x + width, y + height);

问题是getTextBounds()是一个删除所有后端空格的本机方法。 Paint.measureText(String string)不会这样做,所以我们可以使用这个宽度。

1 个答案:

答案 0 :(得分:0)

来自doc

参数: text要测量并返回其边界的字符串

启动要测量的字符串中第一个字符的索引

结束 1 超过字符串度量中的最后一个字符

bounds返回所有文本的联合边界。必须由来电者分配。

Ref

所以我认为你需要打电话,

mPaint.getTextBounds(string, 0, string.length()+1, bounds);