来自资产文件夹的项目的默认字体

时间:2014-03-11 14:29:47

标签: android fonts xamarin typeface

我在Activity中有以下代码来更改ViewGroup中某些layout的字体:

setFont("fonts/texgyreheros-regular-webfont.ttf", listBold, TypefaceStyle.Bold);

setFont的定义如下:

private void setFont(string path, List<TextView> tTV, TypefaceStyle Type)
{
    Android.Content.Res.AssetManager mgr;
    mgr = Assets;
    Typeface font = Typeface.CreateFromAsset(mgr, path);
    for (int i = 0; i < tTV.Count; i++)
    {
        tTV[i].SetTypeface(font, Type);
    }
}

listBoldList<TextView>,通过调用:

填充
findViewById<TextView>(Resource.Id.(...));

多次。

有没有办法通过在Android manifest.xml或其他地方设置默认字体来避免此步骤?

1 个答案:

答案 0 :(得分:1)

您可以使用资源中的字体创建自定义TextView

public class TextViewWithFont : TextView {
    private const string FONT = "fonts/font.ttf";

    public TextViewWithFont(Context context) : base(context) {
        SetTypeface(Typeface.CreateFromAsset(context.Assets, FONT));
    }
}

然后在布局中使用此类。

<com.example.views.TextViewWithFont
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>