代码之家  ›  专栏  ›  技术社区  ›  dimsuz

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

  •  12
  • dimsuz  · 技术社区  · 14 年前

    我试图在画布上绘制这样的文本(下面有点伪代码):

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

    我的问题是结果看起来很“奇怪”。它使用了一些粗体字体,这是严重的别名,看起来不漂亮和“方正”。

    我尝试使用p.settextsize(),通过设置各种大小,也尝试使用p.setttypeface(字体)设置不同的默认字体,并设置默认、普通、衬线、无衬线等,但它看起来仍然很难看。

    相反,整个系统中使用的字体看起来非常好,我想使用它。

    怎样?:)

    1 回复  |  直到 14 年前
        1
  •  16
  •   Joru    13 年前

    这将正确地对字体进行别名:

    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 .

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