如何将TextView的字体大小与canvas.drawText android相匹配

时间:2013-12-05 12:47:28

标签: android android-canvas

我有2个地方在显示短信。 一个是在textview上,另一个是用于绘制文本的视图。

现在我的主要问题是如果我在TextView中将setTextSize设置为20,那么该字体对paint.setTextSize来说会更大,这就是canvas.drawText使用的

如何使它们看起来一样?

1 个答案:

答案 0 :(得分:1)

这是由于TextView API的一些令人困惑的部分。 setTextSize需要SP(缩放像素)值,而getTextSize返回文本大小(以像素为单位)。

您希望将大小设置为20个像素,因为Paint使用像素作为文本大小,因此您需要调用setTextSize(int unit, float size)

您的方法调用应如下所示:setTextSize(TypedValue.COMPLEX_UNIT_PX, 20)

我已经链接了方法定义,因此您可以自己检查一下,看看究竟发生了什么。

编辑:您在评论部分中询问的问题已在StackOverflow上得到解答。 Check it out