Android: 如何向主题/样式/XML添加自定义字体

7
我知道如何将自定义字体设置到TextView中。但是如何通过主题/样式/XML添加自定义字体呢?
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style name="customfontforlistview" parent="@android:style/Widget.ListView">
        <item name="android:textColor">#000000</item>
        <item name="android:typeface">HOW_TO_CUSTOM_FONT</item>
   </style>
</resources>

请为此提供一个解决方案。
1个回答

4
据我所知,目前没有一个很好的方法来做到这一点。我所知道的最好的替代方法是创建一个简单的子类,看起来像这样:
public class CustomTextViewNormal extends TextView
{
    public CustomTextViewNormal(Context context)
    {
        super(context);
        init();
    }

    public CustomTextViewNormal(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        init();
    }

    public CustomTextViewNormal(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        init();
    }

    public void init()
    {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
                "fonts/HelveticaNeue.ttf");
        setTypeface(tf);
    }
}

如果你这么做了,你可以在xml布局中使用这个自定义文本视图,基本上就像一个样式一样具有相同的功能,尽管有些松散。

这不是一次投票!这是正确的答案。至少有一种方法可以做到。 - longi
android:textStyle="bold" 在这个继承的textview上不起作用 :( - nizam.sp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接