$Android设置TextView的字体
做项目的时候,需要使用到手写字体来让内容更加的美观。可是程序中默认使用的是系统的默认字体,怎么将TextView(或EditText)的字体设置成自己想要的字体呢?步骤如下:
1、下载字体文件(.ttf格式),比如Jinglei.ttf(方正静蕾的字体文件),然后将其复制到项目工程的assets/fonts目录下。
2、设置TextView的字体:
TextView tv = (TextView)findViewById(R.id.my_textview);
Typeface typeface = Typeface.createFromAsset(mContext.getAssets(), "fonts/Jinglei.ttf"); // mContext为上下文
tv.setTypeface(typeface );
3、为了使用起来方便,还可以将设置字体的操作封装成一个工具类:
/**
* 字体相关操作工具类
*
*/
public class TypefaceUtil {
// 上下文
private Context mContext;
private Typeface mTypeface; /**
* 如果ttfPath为null那么mTypeface就为系统默认值
*
* @param context
* @param ttfPath
*/ public TypefaceUtil(Context context, String ttfPath) {
mContext = context;
mTypeface = getTypefaceFromTTF(ttfPath);
} /**
* 从ttf文件创建Typeface对象
*
* @ttfPath "fonts/XXX.ttf"
*/
public Typeface getTypefaceFromTTF(String ttfPath) { if (ttfPath == null) {
return Typeface.DEFAULT;
} else {
return Typeface.createFromAsset(mContext.getAssets(), ttfPath);
}
} /**
* 设置TextView的字体
*
* @tv TextView对象
* @ttfPath ttf文件路径
* @isBold 是否加粗字体
*/
public void setTypeface(TextView tv, boolean isBold) {
tv.setTypeface(mTypeface);
setBold(tv, isBold);
} /**
* 设置字体加粗
*/
public void setBold(TextView tv, boolean isBold) {
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(isBold);
} /**
* 设置TextView的字体为系统默认字体
*
*/
public void setDefaultTypeFace(TextView tv, boolean isBold) {
tv.setTypeface(Typeface.DEFAULT);
setBold(tv, isBold);
} /**
* 设置当前工具对象的字体
*
*/
public void setmTypeface(String ttfPath) {
mTypeface = getTypefaceFromTTF(ttfPath);
} }
4、使用的时候只需这样调用:
TypefaceUtil tfUtil = new TypefaceUtil(mContext,"fonts/Jinglei.ttf");
tfUtil.setTypeface(tv,false);
随机推荐
- Cmder 配置使用
官网下载 配置: 1.把 Cmder 加到环境变量 将Cmder.exe存放的目录添加到系统环境变量path 添加成功后,Win+r 输入cmder,可以正确打开cmder 窗口即可. 2.添加 cm ...
- [浪风推荐]CURL伪造IP和来源
给“刷票”的朋友提供了很好的换IP的方案,查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl_seto ...
- hdu 4681(枚举+dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 思路:首先预处理出串C在A,B中的所有的位置,然后从前向后求一次最长公共子序列,从后向前求一次最 ...
- cookie小细节
设置cookie时,不像设置session,可以马上生效,它的生效时间是下一次请求页面.
- day2 python基础 while 循环补充
一.上节内容回顾 二.pycharm安装. 安装好以后激活方法:直接打开pycharm,选License server激活,输入:http://idea.imsxm.com 三.补充知识:如果字符串本 ...
- 相对定位position: relative;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 利用Lucene将被索引文件目录中的所有文件建立索引
1.新建两个文件夹htm和index,其中htm中存放被索引的文件,index文件中存放建立的索引文件. 2.新建解析目录中所有文件的类,用来解析指定目录下的所有文件. import java.io. ...
- 三维空间直线最近点对hdu4741
//求两条直线之间的关系(三维) //输入:两条不为点的直线 //输出:相交返回XIANGJIAO和交点p,平行返回PINGXING,共线返回GONGXIAN int LineAndLine(Line ...
- Javascript中的函数中的this值
看下面这段代码会在控制台上输出什么内容? <script> var url="fang.com"; var obj={ url:"soufun.com&quo ...
- HDU4771(2013 Asia Hangzhou Regional Contest )
http://acm.hdu.edu.cn/showproblem.php?pid=4771 题目大意: 给你一幅图(N*M)“@”是起点,"#"是墙,“.”是路,然后图上有K个珠 ...