1

我在画布中使用这样的文本:

paintTextTime.setAntiAlias(true);
paintTextTime.setColor(Color.WHITE);
paintTextTime.setTextSize(60);
canvas.drawText(stringPlayTime, 220, 180, paintTextTime);

我的问题是我如何知道我可以使用哪种字体以及如何将字体样式设置为粗体?

4

3 回答 3

3

您可以通过加载新的TypeFace轻松更改字体。您可以将任何 TTF 字体放在资产文件夹中并使用以下方法加载它:

Typeface.createFromAsset(context.getAssets(), "myfont.ttf");

我建议您缓存加载的字体以防止旧 Android 版本的内存泄漏

public class FontCache {

    private static Hashtable<String, Typeface> fontCache = new Hashtable<String, Typeface>();

    public static Typeface get(String name, Context context) {
        Typeface tf = fontCache.get(name);
        if(tf == null) {
            try {
                tf = Typeface.createFromAsset(context.getAssets(), name);
            }
            catch (Exception e) {
                return null;
            }
            fontCache.put(name, tf);
        }
        return tf;
    }
}

并像这样使用它:

Typeface tf = FontCache.get(context, "myfont.ttf");
Paint paint = new Paint();
paint.setTypeface(tf);
canvas.drawText("Lorem ipsum", 0, 0, paint);
于 2013-06-06T10:59:11.797 回答
1

谷歌android typeface是第一个结果,很可能是您正在寻找的结果。

于 2013-06-06T10:53:00.070 回答
0

您可以使用以下代码

Typeface tf = Typeface.create("Helvetica",Typeface.BOLD);

Paint paint = new Paint();

paint.setTypeface(tf);

canvas.drawText("Sample text in bold Helvetica",0,0,paint);
于 2013-12-13T10:21:38.427 回答