我在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);
}
}
listBold
是List<TextView>
,通过调用:
findViewById<TextView>(Resource.Id.(...));
多次。
有没有办法通过在Android manifest.xml
或其他地方设置默认字体来避免此步骤?
答案 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"/>