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

时间:2010-11-02 08:44:51

标签: android text fonts canvas

我正在尝试在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等设置不同的默认字体,但它仍然看起来难看。

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

如何? :)

1 个答案:

答案 0 :(得分:16)

这将使字体正确别名:

p.setAntiAlias(true);

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

p.setTypeface(yourTypeface);

使用自定义字体对象。

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

您可以使用

Typeface.defaultFromStyle(int style);

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

它应该为您提供默认的系统字体样式,如果您正在使用它。