首先获取字体
Typeface.createFromAsset(getContext().getAssets(),"fonts/samplefont.ttf");
Typeface还有很多其他的create,比如说从文件createFromFile(),这样字体包,可能比较大的可以先不打入程序包,可以通过后续从网络上获取,再设置。
先看实现代码吧,
private static class SampleView extends View
{
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Typeface mFace;
public SampleView(Context context)
{
super(context);
//实例化自定义字体
mFace = Typeface.createFromAsset(getContext().getAssets(),"COOPBL.TTF");
//设置字体大小
mPaint.setTextSize(32);
}
@Override protected void onDraw(Canvas canvas)
{
canvas.drawColor(Color.WHITE);
//绘制默认字体
mPaint.setTypeface(null);
canvas.drawText("Default:abcdefg", 10, 100, mPaint);
//绘制自定义字体
mPaint.setTypeface(mFace);
canvas.drawText("Custom:abcdefg", 10, 200, mPaint);
}
}
自定义字体 可以是paint来set进行一个自绘的view,也可以是直接set给textview,这样就不用自定义控件了。