Android 中文字体的设置方法和使用技巧
Android TextView字体颜色等样式具体解释连接:http://blog.csdn.net/pcaxb/article/details/47341249
1.使用字体库(自己定义字体的使用):当然假设字体库和手机的不兼容获取什么的,可能你的中文是无效的
(1)在assets中新建文件夹fonts,把ttf字体库考到文件夹下
(2)使用代码
TextView view1 = (TextView) findViewById(R.id.tv1);
Typeface tf1 = Typeface.createFromAsset(getAssets(), "fonts/DroidSerif-Bold.ttf");
view1.setTypeface(tf1);
(3)使用字体库的问题和解决
问题:假设你的字体库太大(xM),就会抛java.lang.RuntimeException: native typeface cannot be made
异常。当然抛这个异常不一定是字体库大了。
解决:
用到的软件
(a)FontCreator字库浏览软件
(b)FontSubset大字库化小字库软件
工具下载地址:http://download.csdn.net/detail/pcaxb/8972239
操作使用
(a)打开FontSubset,执行FontSubsetGUI.exe
(b)填上数据
source font 是你的当前要切割的字体包
new font 是你要切割后的字体
char list 能够选你当前切割的字体包
encodeing 选utf-8
点击 process
字体库的下载链接(这里的字体库是我用FontSubset压缩了的,很小):http://download.csdn.net/detail/pcaxb/8974239
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
(4)Android字体系统库(了解)
Android System Fonts(/system/fonts):
AndroidClock.ttf
AndroidClock_Highlight.ttf
AndroidClock_Solid.ttf
AndroidEmoji.ttf
Clockopia.ttf
DroidNaskh-Regular.ttf
DroidNaskhUI-Regular.ttf
DroidSans-Bold.ttf
DroidSans.ttf
DroidSansArmenian.ttf
DroidSansEthiopic-Regular.ttf
DroidSansFallback.ttf
DroidSansGeorgian.ttf
DroidSansHebrew-Bold.ttf
DroidSansHebrew-Regular.ttf
DroidSansMono.ttf
DroidSerif-Bold.ttf
DroidSerif-BoldItalic.ttf
DroidSerif-Italic.ttf
DroidSerif-Regular.ttf
MTLmr3m.ttf
Roboto-Bold.ttf
Roboto-BoldItalic.ttf
Roboto-Italic.ttf
Roboto-Light.ttf
Roboto-LightItalic.ttf
Roboto-Regular.ttf
Roboto-Thin.ttf
Roboto-ThinItalic.ttf
RobotoCondensed-Bold.ttf
RobotoCondensed-BoldItalic.ttf
RobotoCondensed-Italic.ttf
RobotoCondensed-Regular.ttf
2.设置字体的相关属性
(1)android:fontFamily的使用方法(有较高版本号的限制)
相关属性:sans-serif、sans-serif-light、sans-serif-condensed、sans-serif-thin、
(2)android:textStyle="normal|bold|italic"
相关属性Regular、Italic、、Bold、Bold-italic、Light、Light-italic、Thin、Thin-italic、Condensed regular、Condensed italic、Condensed bold、Condensed bold-italic
android:textStyle="bold"能够将英文设置成粗体, 可是不能将中文设置成粗体。
代码设置
TextView tv = (TextView)findViewById(R.id.TextView01);
tv.getPaint().setFakeBoldText(true);//使用TextPaint的仿粗体设置setFakeBoldText为true
(3)android:fontFamily与 android:typeface
相关属性:normal、sans、serif、monospace
參考链接:
http://developer.android.com/reference/android/widget/TextView.html#attr_android%3atypeface
http://stackoverflow.com/questions/12128331/how-to-change-fontfamily-of-textview-in-android
3.通过HTML标签设置字体(注意有些标签是没有效果的):
Button btn = (Button) findViewById(R.id.bt);
String source = "这仅仅是一个測试字符串,測试<b>黑体字</b>、<i>斜体字</i>、<u>下划线</u>、<font color='red' face='微软雅黑'>红色字</font>的显示。<font face='幼圆' size='1' color='green'>幼圆一号绿色字体</font>" +
"<font face='宋体'>字体</font>" +
"<font face='微软雅黑'>字体</font>" +
"<font face='宋体'>nishiwode</font>" +
"<font face='微软雅黑'>nishiwode</font>";
btn.setText(Html.fromHtml(source));
btn.setOnFocusChangeListener(this);
4.通过以下这样的方式的没有什么效果
Typeface tf1 = Typeface.create("宋体", Typeface.NORMAL);
Typeface tf1 = Typeface.create("sans-serif", Typeface.NORMAL);
Android 中文字体的设置方法和使用技巧的更多相关文章
- [转载]Linux下终端字体颜色设置方法
原文地址:Linux下终端字体颜色设置方法作者:router 网上类似的文章有很多,但是都是转来转去的,没有经过测试,按照很多文章的方法会造成你设置之后的终端在换行和删除输入字符时终端显示会乱七八糟, ...
- CSS 文本字体颜色设置方法(CSS color)
CSS 文本字体颜色设置方法(CSS color) 一.认识CSS 颜色(CSS color) 这里要介绍的是网页设置颜色包含有哪些:网页颜色规定规范. 1.常用颜色地方包含:字体颜色.超链接颜色.网 ...
- CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
font-family的调用方法: font-family:Arial,'Times New Roman','Microsoft YaHei',SimHei; font:bold 12px/.75em ...
- Sass、Less编译器koala及koala不支持中文字体的解决方法
一款很好用的Sass编译器,还可以编译Less.coffeescript等 去官网下载适合自己电脑的版本 http://koala-app.com/index-zh.html 打开后拖动或者打开项目目 ...
- centos系统安装中文字体几种方法
我们知道centos是基于linux内核的这款系统默认是不带中文字体了,如果我们要使用中文字体就需要自行安装了,下面一起来看看吧. 前天有用户反应,生成的报到单中他的名字少了一个字.仔细检查了一下 ...
- CSS为英文和中文字体分别设置不同的字体
font-family的调用方法: div { font-family:Arial,'Times New Roman','Microsoft YaHei',SimHei; font:bold 12px ...
- xe6 android控件透明度设置方法
今天才知道xe6 android控件的透明度设置方法:只需设置控件中的Opacity参数,默认为1--不透明 panel1.Opacity:=0.60;
- zabbix4.2升级后中文字体乱码解决方法.
字体文件目录: zabbix 4.2 /usr/share/zabbix/assets/fonts/ 4.0 /usr/share/zabbix/fonts/ php 脚本文件位置: /usr/sha ...
- python-docx 设置标题heading的中文字体类型+设置正文的中文字体类型
依赖包: from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.o ...
随机推荐
- Web Service学习-CXF开发Web Service实例demo(一)
Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样 ...
- DesignPattern_Java:Factory Method Pattern
工厂方法模式 Factory Method :(虚拟构造函数模式 Virtual Constructor,多态性工厂模式 Ploymorphic Facoty) Define an interface ...
- 【C语言】编写函数实现字符串旋转
//编写函数实现字符串旋转 #include <stdio.h> #include <assert.h> #include <string.h> void reve ...
- kettle 使用excel模板导出数据
通过excel进行高速开发报表: 建设思路: 1.首先制订相关的execl模板. 2.通过etl工具(kettle)能够高速的 将数据库中的数据按excel模板导出成新的excel就可以. 当中ket ...
- 2014年湖北省TI杯大学生电子设计竞赛论文格式
2014年湖北省TI杯大学生电子设计竞赛 B题:金属物体探測定位器(本科) 2014年8月15日 文件夹 1 系统方案 1.1 XXX的论证与选择........................... ...
- Unity5.1 新的网络引擎UNET(七) UNET 单人游戏转换为多人
单人游戏转换为多人 孙广东 2015.7.12 本文档描写叙述将单人游戏转换为使用新的网络系统的多人游戏的步骤.这里描写叙述的过程是简化,对于一个真正的游戏事实上须要更高级别版本号的实际 ...
- 精美viso制图(1)
office组件中的viso是一款十分强大的绘图工具,在绘制流程图.结构框图时显得十分方便,这里将我自己绘制的一些viso图(大部分都是用在我自己的论文中的)与大家分享一把. 1.深度学习训练流程图 ...
- 0x06 倍增
这东西太玄学了我真是不太会... 对于这道例题,很容易看出最大值必然是最大减最小,次大减次小…… 常规的贪心思想,分的个数一样,总长度越大越好.其实我的第一想法是二分右端点..但是只有40,至今没有搞 ...
- c/c++ 比较好的开源框架
作者:EZLippi链接:https://www.zhihu.com/question/19823234/answer/31632919来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- iis 部署
配置错误1: 由于权限不足而无法读取配置文件 建立一个新用户,分配所有权限 http://blog.csdn.net/jaychouliyu/article/details/7237143 配置错误2 ...