Android使用自定义字体(自定义view)

知识的价值不在于占有,而在于使用。这篇文章主要讲述Android使用自定义字体(自定义view)相关的知识,希望能为你提供帮助。
【Android使用自定义字体(自定义view)】要在其他平台实现自定义字体可谓是相当的麻烦,但是在android平台就很简单了。
 
首先将自定义字体ttf放到“assets”下面被实例化之后再使用。
 

Typeface.createFromAsset(getContext().getAssets(),"fonts/samplefont.ttf");

1 package com.yarin.android.Typefaces; 2 3 4 5 import android.app.Activity; 6 7 import android.content.Context; 8 9 import android.graphics.Canvas; 10 11 import android.graphics.Color; 12 13 import android.graphics.Paint; 14 15 import android.graphics.Typeface; 16 17 import android.os.Bundle; 18 19 import android.view.View; 20 21 22 23 public class Typefaces extends Activity 24 25 { 26 27/** Called when the activity is first created. */ 28 29@Override 30 31public void onCreate(Bundle savedInstanceState) 32 33{ 34 35super.onCreate(savedInstanceState); 36 37 38 39setContentView(new SampleView(this)); 40 41} 42 43 44 45private static class SampleView extends View 46 47{ 48 49private PaintmPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 50 51private Typeface mFace; 52 53 54 55public SampleView(Context context) 56 57{ 58 59super(context); 60 61//实例化自定义字体 62 63mFace = Typeface.createFromAsset(getContext().getAssets(),"fonts/samplefont.ttf"); 64 65//设置字体大小 66 67mPaint.setTextSize(32); 68 69} 70 71 72 73@Override protected void onDraw(Canvas canvas) 74 75{ 76 77canvas.drawColor(Color.WHITE); 78 79//绘制默认字体 80 81mPaint.setTypeface(null); 82 83canvas.drawText("Default:abcdefg", 10, 100, mPaint); 84 85//绘制自定义字体 86 87mPaint.setTypeface(mFace); 88 89canvas.drawText("Custom:abcdefg", 10, 200, mPaint); 90 91} 92 93} 94 95 }

好了,就这么简单就实现了自定义字体。
下面是两个非常有用的方法,在这里备份一下:    
  1. //消除锯齿   
  2. paint.setFlags(Paint.ANTI_ALIAS_FLAG)   
  3. //取得字符串宽度   
  4. paint.measureText()  

    推荐阅读