我是靠谱客的博主 谨慎茉莉,最近开发中收集的这篇文章主要介绍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


(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 中文字体的设置方法和使用技巧的全部内容,希望文章能够帮你解决Android 中文字体的设置方法和使用技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部