How to know the size of a text when using Canvas.drawText()

6.3k views Asked by At

I'm using the Canvas.drawText() to write text on a custom view. I want to add a background 9-patch drawable behind the text, so I need to know the boundaries of the text drawn. The text is given by the user, so it's not a fixed size.

For now I'm using a monospace font and I managed to build a size which looks not so bad, but in the hand i'd rather use another font.

3

There are 3 answers

0
Vinod Maurya On BEST ANSWER

You can use public void getTextBounds(String text, int start, int end, Rect bounds) method of Paint to get a rectangle that encloses all your text. Take a look at getTextBounds.

Hope this helps!

0
N-JOY On

I think getTextBounds(String text, int start, int end, Rect bounds) can do it for you.

This method belongs to Paint class:

Refer to this link

0
Gabriel Pereira On

You also may use measureText

mTextTimeColorPaint.measureText(timeText)

Like in this post Center Text on Watch