2013-12-05 3 views
0

Есть 2 места, где я показываю текстовое сообщение. Один на текстовом изображении, другой - это вид, который рисует текст.Как сопоставить размер шрифта TextView с canvas.drawText android

теперь моя основная проблема заключается в том, что если я делаю setTextSize в TextView 20, шрифт появляется больше к paint.setTextSize, который является тем, что canvas.drawText Использует

Как заставить их выглядеть так же?

ответ

1

Это связано с некоторыми запутанными частями API TextView. setTextSize ожидает значение SP (масштабированные пиксели), а getTextSize возвращает размер текста в пикселях.

Вы хотите установить размер до 20 пикселей, потому что Paint использует пиксели для его размера текста, поэтому вам нужно позвонить setTextSize(int unit, float size).

Ваш вызов метода должен выглядеть следующим образом: setTextSize(TypedValue.COMPLEX_UNIT_PX, 20)

Я связал определение метода, так что вы можете проверить это для себя и увидеть то, что происходит.

Редактировать: Вопрос, который вы мне задали в разделе комментариев, уже ответил на StackOverflow. Check it out.

+0

спасибо. Но я сделал все свои настройки, чтобы посмотреть, как это выглядит с помощью TextView. Итак, каков способ получить caluclation, который Textview делает внутренне, чтобы преобразовать 20 в какое-то другое значение, я могу использовать ту же логику для Draw – mSO

+0

См. Мое редактирование для этой части. – npace

Смежные вопросы