Измерение ширины текста для рисования на холсте (Android) - PullRequest
118 голосов
/ 15 июля 2010

Существует ли метод, который возвращает ширину (в пикселях) текста, который должен быть нарисован на холсте Android, используя метод drawText () в соответствии с Paint, использованным для его рисования?

Ответы [ 6 ]

208 голосов
/ 15 июля 2010
28 голосов
/ 17 ноября 2014
Paint paint = new Paint();
Rect bounds = new Rect();

int text_height = 0;
int text_width = 0;

paint.setTypeface(Typeface.DEFAULT);// your preference here
paint.setTextSize(25);// have this the same as your text size

String text = "Some random text";

paint.getTextBounds(text, 0, text.length(), bounds);

text_height =  bounds.height();
text_width =  bounds.width();
8 голосов
/ 02 февраля 2017

Дополнительный ответ

Существует небольшая разница между шириной, возвращаемой Paint.measureText и Paint.getTextBounds. measureText возвращает ширину, которая включает значение advanceX глифа, дополняющее начало и конец строки. Ширина Rect, возвращаемая getTextBounds, не имеет этого отступа, потому что границы - это Rect, который плотно упаковывает текст.

источник

1 голос
/ 09 декабря 2016

Ну, я сделал по-другому:

String finalVal ="Hiren Patel";

Paint paint = new Paint();
paint.setTextSize(40);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Helvetica.ttf");
paint.setTypeface(typeface);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);

Rect result = new Rect();
paint.getTextBounds(finalVal, 0, finalVal.length(), result);

Log.i("Text dimensions", "Width: "+result.width()+"-Height: "+result.height());

Надеюсь, это поможет вам.

0 голосов
/ 16 марта 2016

вы можете использовать "textPaint.getTextSize ()", чтобы получить ширину текста

0 голосов
/ 20 сентября 2015

Я использовал методы measureText () и getTextPath () + computeBounds () и создал Excel со всеми текстовыми атрибутами для шрифта фиксированного размера, который можно найти в https://github.com/ArminJo/android-blue-display/blob/master/TextWidth.xlsx.Там вы найдете также простые формулы для других текстовых атрибутов, таких как ascend и т. Д.

app , а также функция drawFontTest () для генерации необработанных значений, используемых вExcel также доступны в этом репо.

...