$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);
随机推荐
- 阿里云服务器 端口开放问题 浏览器钟输入ip 访问服务器
在这里先用一堆粗口强烈吐槽阿里云服务器控制台,屎一样的界面,简直非人类的操作.想找一个功能简直无从下手. 场景: 今天刚在阿里云买了个服务器,打算愉快的用五分钟将数据库,apache,安装完毕,然后去 ...
- Oracle----Oracle 11g XE release2安装与指导
今天上午我安装了Oracle 11g企业版,发现太占内存了,考虑到MS SQL有express版本,所以寻思着尝试尝试Oracle 11g的express版本,就是EX版本.下面是具体的安装步骤. 1 ...
- Consul实现原理系列文章1: 用Raft来实现分布式一致性
工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前一篇文章中,我介绍了Raft算法.这篇文章会讲讲Consul是如何使用Raft算法来实现分布式一 ...
- 【转】Android自动化测试(UiAutomator)——UiObject
本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助 UiObject 1.首先要声明对象 UiObject XXX = new UiObject(new Selector) ...
- Hibernate每个子类一张表(使用注释)实例
在每个子类一张表的情况下,表是根据持久类创建的,但是它们使用主键和外键来重新定义. 所以关系中不会有重复的列. 我们需要在子类中的使用@PrimaryKeyJoinColumn注释和在父类指定@Inh ...
- JavaScript 测试和捕捉
try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的.
- 这样就能用MathType编辑^符号
大家都知道数学公式中的符号有很多,有些符号的名称还很多,比如,^这个字符,可以是乘方.插入符号.插入符.托字符等.所以一些用户在使用过程中有点搞不清,但是Mathtype的符号模板有很多种,基本可以满 ...
- 【转发】linux开发人员常用命令
每个开发人员到了他们职业人生的某个阶段的时候,将会发现自己要寻找有关Linux的信息.我并不是这方面的专家.但是掌握了以下8个命令,我几乎可以得到我任何需要的东西. 注意:以下的命令都有很多扩展的文档 ...
- python3----转换大小写(upper lower capitalize and title)
和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower().还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及 ...
- jmeter对响应结果做正则、json、xpath结果测试
上面的返回结果可用于关联取值测试 具体用法详见http://www.cnblogs.com/xinjing-jingxin/p/8554338.html http://goessner.net/art ...