在进行开发时,有时候需要设置自己的字体,那么Android中是如何设置自己的字体的呢?
先来看一下页面效果
可以看到这是自己的字体,而不是Android系统自带的字体,下面来讲一下实现方式
具体可以有两种
第一,在Activity等页面中通过findviewbyId找到这个带有text的控件
然后调用以下方法
Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);
先看createFromAsset方法中的两个参数,第一个代表是读取资源目录assets,那么后面一个字符串就好理解了,就是资源目录assets下的fonts的字体文件。
Android默认用assets下的fonts文件夹存储字体格式的文件,相关的字体大家可以去网上搜索,一般的字体比如楷体或者行书都很好找到。
那么每次这样调用会显得比较麻烦,我们也可以采用第二种方式
直接定义一个类继承含有文本的控件(在安卓中这些控件包括edittext,textview等)
这里我们仍然以textview为例,下面是我写的一个自定义的textview,大家可以仿造这种方式重写其他的控件
/** * 自定义TextView */ public class CustomFontTextView extends TextView { public CustomFontTextView(Context context) { this(context, null); } public CustomFontTextView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public CustomFontTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } /** * 设置字体 * * @param context */ private void init(Context context) { AssetManager assets = context.getAssets(); Typeface font = Typeface.createFromAsset(assets, MyCode.FONTS); setTypeface(font); } }
可以看到在init()方法里仍然是采用的这种方式,另外顺便一说
自定义控件时,画笔Pain也有这个setTpyeface方法哦,也是用来绘制字体的
更多关于自定义控件的问题,可以参考这篇博客
也是我转载他人的一个介绍
还是蛮详细的
http://blog.csdn.net/android_xiong_st/article/details/78401548