android textappearance 自定义,Android中的自定义字体

好!!

这个问题已经很老了,但是如果有人(2015年)正在寻找有关如何通过xml代码将自定义字体应用于所有Textview的答案,请直接参见以下内容:

首先:

我们需要在您的应用目录中的assets文件夹内添加自定义字体:

.ttf或.otf都适用于Android

第二:

创建Class CustomTextView,它扩展了TextView,如下所示:

public class CustomTextView extends TextView {

public CustomTextView(Context context) {

super(context);

}

public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr)   {

super(context, attrs, defStyleAttr);

}

public CustomTextView(Context context, AttributeSet attrs) {

super(context, attrs);

}

@Override

public void setTypeface(Typeface tf) {

super.setTypeface(FontCache.getFont(getContext(),"fonts/"));

}

}

第三:

在CustomTextView的setTypeface()方法中使用FontCache类,目的是使用HashMap进行基本的字体缓存:

public class FontCache {

private static Map fontMap = new HashMap();

public static Typeface getFont(Context context,String fontname){

if(fontMap.containsKey(fontname)){

return fontMap.get(fontname);

}

else{

Typeface tf = Typeface.createFromAsset(context.getAssets(),fontname);

fontMap.put(fontname,tf);

return tf;

}

}

}

第四: [最后一步]现在要做的就是在需要自定义字体textview的地方直接在XML文件中使用CustomTextView:

<.CustomTextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Custom Font Text"

android:textSize ="18sp"

android:textAppearance="?android:textAppearanceSmall"

android:id="@+id/custom_txt"

/>

抱歉,如果此消息已发布在SO的某个位置。只是想分享一下是否有帮助!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值