本例介紹如何在Android中使用自訂字型,Android支援TureType字型,和Windows 支援的TrueType字型格式相同。
可以在Windows\Fonts 目錄下 查看字型,比如將 Edwardian 字型拷貝到本例的assest\fonts目錄下:
修改一下本例代碼:
[java]
private static class SampleView extends View {
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Typeface mFace;
private Typeface mFace1;
public SampleView(Context context) {
super(context);
mFace = Typeface.createFromAsset(getContext().getAssets(),
"fonts/samplefont.ttf");
mFace1 = Typeface.createFromAsset(getContext().getAssets(),
"fonts/edwardian.ttf");
mPaint.setTextSize(64);
}
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
mPaint.setTypeface(null);
canvas.drawText("Default", 10, 100, mPaint);
mPaint.setTypeface(mFace);
canvas.drawText("Custom", 10, 200, mPaint);
mPaint.setTypeface(mFace1);
canvas.drawText("Edwardian", 10, 300, mPaint);
}
}
private static class SampleView extends View {
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Typeface mFace;
private Typeface mFace1;
public SampleView(Context context) {
super(context);
mFace = Typeface.createFromAsset(getContext().getAssets(),
"fonts/samplefont.ttf");
mFace1 = Typeface.createFromAsset(getContext().getAssets(),
"fonts/edwardian.ttf");
mPaint.setTextSize(64);
}
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
mPaint.setTypeface(null);
canvas.drawText("Default", 10, 100, mPaint);
mPaint.setTypeface(mFace);
canvas.drawText("Custom", 10, 200, mPaint);
mPaint.setTypeface(mFace1);www.2cto.com
canvas.drawText("Edwardian", 10, 300, mPaint);
}
}
作者:mapdigit