Android Typeface ( 字型 )

Android Typeface(字型) ,见名思义,这个API 是用来设置字体以及字体风格的

字体的可选风格

Android 提供了四个整型常量

常量 说明
BOLD 加粗
ITALIC 斜体
BOLD_ITALIC 粗斜体
NORMAL 正常

可选字体对象 ( Typeface )

Android 系统默认支持三种字体,分别为

字体类型 说明
sans 衬线字体
serif 非衬线字体
monospace 等宽字体

而提供的可选静态对象值有五个

静态对象 说明
DEFAULT 默认正常字体对象
DEFAULT_BOLD 默认的字体对象,这实际上不可能是粗体的,这取决于字体设置,由 getStyle() 来确定
MONOSPACE monospace 字体风格
SANS_SERIF sans serif 字体风格
SERIF serif 字体风格

自定义创建字型

如果 Android 自带的三种字体都不能满足需求,比如你可能喜欢 MAC 的字体—— Monaco 字体

你想让 APP 里的文字可以用这种字体,首先准备好我们的 TTF 文件,然后放到 res/font/ 目录下,最后创建对应对象

Typeface typeFace = Typeface.createFromAsset(getAssets(),"font/MONACO.ttf");

范例中我们使用的字体文件是 permanent-marker-v7-latin-regular.ttf

只支持英文....

范例

  1. 创建一个 空的 Android 项目 cn.twle.android.OtherFont

  2. 右键点击 app 目录,选择 Folder -> Assets Folder 创建 assets 目录,然后在 assets 目录上点击右键选择 Directory 创建 font 目录

  3. 下载字体 permanent-marker-v7-latin-regular.ttf 并保存到 assets/font 目录

  4. 自定义一个 View 类 MsView.java

    package cn.twle.android.otherfont;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.Typeface;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MsView extends View{
    
        private Paint mPaint1,mPaint2,mPaint3,mPaint4,mPaint5;
        private Context mContext;
    
        public MsView(Context context) {
            this(context,null);
        }
    
        public MsView(Context context, AttributeSet attrs) {
            super(context, attrs);
            mContext = context;
            init();
        }
    
        public MsView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        private void init(){
            mPaint1 = new Paint();
            mPaint2 = new Paint();
            mPaint3 = new Paint();
            mPaint4 = new Paint();
            mPaint5 = new Paint();
    
            mPaint1.setColor(Color.RED);
            mPaint2.setColor(Color.BLUE);
            mPaint3.setColor(Color.BLACK);
            mPaint4.setColor(Color.YELLOW);
            mPaint5.setColor(Color.GRAY);
    
            mPaint1.setTextSize(100);
            mPaint2.setTextSize(100);
            mPaint3.setTextSize(100);
            mPaint4.setTextSize(100);
            mPaint5.setTextSize(100);
    
            mPaint1.setTypeface(Typeface.DEFAULT_BOLD);
            mPaint2.setTypeface(Typeface.MONOSPACE);
            mPaint3.setTypeface(Typeface.SANS_SERIF);
            mPaint4.setTypeface(Typeface.SERIF);
            mPaint5.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "font/permanent-marker-v7-latin-regular.ttf"));
    
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            canvas.drawText("www.twle.cn", 100, 100, mPaint1);
            canvas.drawText("www.twle.cn", 100, 200, mPaint2);
            canvas.drawText("www.twle.cn", 100, 300, mPaint3);
            canvas.drawText("www.twle.cn", 100, 400, mPaint4);
            canvas.drawText("www.twle.cn", 100, 500, mPaint5);
        }
    }
    
  5. 修改 MainActivity.java 设置 setContentView(new MsView(MainActivity.this))

    package cn.twle.android.otherfont;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(new MsView(MainActivity.this));
        }
    }
    

参考文档

  1. 官方 API 文档 Android Typeface

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.