我有2个地方在显示短信。 一个是在textview上,另一个是用于绘制文本的视图。
现在我的主要问题是如果我在TextView中将setTextSize设置为20,那么该字体对paint.setTextSize来说会更大,这就是canvas.drawText使用的
如何使它们看起来一样?
答案 0 :(得分:1)
这是由于TextView API的一些令人困惑的部分。 setTextSize需要SP(缩放像素)值,而getTextSize返回文本大小(以像素为单位)。
您希望将大小设置为20个像素,因为Paint使用像素作为文本大小,因此您需要调用setTextSize(int unit, float size)。
您的方法调用应如下所示:setTextSize(TypedValue.COMPLEX_UNIT_PX, 20)
我已经链接了方法定义,因此您可以自己检查一下,看看究竟发生了什么。
编辑:您在评论部分中询问的问题已在StackOverflow上得到解答。 Check it out