如何在Canvas上使用默认的Android字体进行绘制?

12

我想在 Canvas 上绘制如下文本(假设伪代码如下):

Paint p = new Paint(ANTI_ALIAS_FLAG);
p.setTextSize(18);
...
mCanvas.drawText("Hello StackOverflow!", 50, 50, p);

我的问题是,结果看起来真的很“奇怪”。它使用了一些类似于粗体的字体,非常模糊,看起来不漂亮,而且“方块状”。

我尝试使用p.setTextSize()进行调整,设置各种大小,也尝试通过使用p.setTypeface(Typeface)并设置DEFAULT、NORMAL、SERIF、SANS_SERIF等不同的默认Typefaces来设置不同的字体,但它仍然看起来很丑。

相反,系统中其他部分使用的字体看起来真的很好,我想使用它。

如何做到呢?:)


如果你加上一个截图来展示问题的实际情况,将会非常有帮助。 - blessanm86
1个回答

16

4
“Typeface.defaultFromStyle(int style);” 期望接收像“Typeface.BOLD”这样的样式,而不是来自“android.R.style”的样式。 - Malcolm
1
确实是一个重要的细节。使用来自android.R.style的值会导致ArrayIndexOutOfBoundsException异常。 - Mavamaarten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接