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

我正在尝试在Canvas上绘制一个文本(下面有点伪代码):

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

我的问题是结果看起来真的很“奇怪”。 它使用了一些类似于粗体的字体,这种字体非常混淆,看起来不漂亮并且“方形”。

我尝试使用p.setTextSize(),通过设置各种大小,我尝试通过使用p.setTypeface(字体)和设置DEFAULT,NORMAL,SERIF,SANS_SERIF等设置不同的默认字体,但它仍然看起来很难看。

相反,系统其余部分使用的字体看起来非常好,我想使用它。

怎么样? 🙂

这将正确别名字体:

 p.setAntiAlias(true); 

如果要更改字体本身,请使用

 p.setTypeface(yourTypeface); 

使用自定义Typeface对象。

(看看http://developer.android.com/reference/android/graphics/Typeface.html )

您可以使用

 Typeface.defaultFromStyle(int style); 

以及其中一个文本样式: http : //developer.android.com/reference/android/R.style.html#TextAppearance 。

它应该为您提供默认的系统字体样式,如果这是您所追求的。