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
只支持英文....
范例
-
创建一个 空的 Android 项目
cn.twle.android.OtherFont
-
右键点击
app
目录,选择Folder -> Assets Folder
创建assets
目录,然后在assets
目录上点击右键选择Directory
创建font
目录 -
下载字体 permanent-marker-v7-latin-regular.ttf 并保存到
assets/font
目录 -
自定义一个 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); } }
-
修改
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)); } }
参考文档
- 官方 API 文档 Android Typeface