Android 编程下字库的使用及注意事项

狗尾巴草的爱9

狗尾巴草的爱9

2016-02-19 10:34

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的Android 编程下字库的使用及注意事项教程,一起来看看吧!超容易上手~
在安卓操作系统下对于 TextView 字体的支持非常有限,默认情况下 TextView 的 typeface 属性支持 "Sans","serif","monospace" 这三种字体,如果在没有指定字体的情况下,系统缺省会使用 "Sans" 作为文本显示的字体。但这三种字体只支持英文,也就是说只要你显示的文字是中文,无论你选择这三种字体中的哪一种,显示效果都是一样的。为此,谷歌又提供了另外一种字体的支持方式:字库。在 Android 2.2 版本中,安卓对字库的支持是比较有限的,从 Android 2.3.3 版本开始,安卓系统已经能够支持大部分的字库。这意味着你在 SDK 版本为 Android 2.2 的平台下写的使用字库的代码只有在 Android 2.3.3 系统及其更的高版本中才能生效;如果你将代码运行在 Android 2.2 的系统上,你将不会看到自己所期望的效果,取而代之的是一片空白。

下面来看一下代码实现过程,在代码实现实现之前,我们先来看下不同字库的显示效果,下图中第一张图:SIMKAI.TTF 简体字-楷体-常规、第二张图:MSYH.TTF 简体字-微软雅黑-常规。


代码如下:

package cn.sunzn.fonts;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_title;
private TextView tv_author;
private TextView tv_line1;
private TextView tv_line2;
private TextView tv_line3;
private TextView tv_line4;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 在 assets 目录下创建 fonts 文件夹并放入要使用的字体文件(**.ttf)并提供相对路径给
* createFromAsset(AssetManager mgr, String path) 来创建 Typeface 对象,再通
* 过TextView.setTypeface(Typeface tf) 指定文本显示的字体。
*/
Typeface face = Typeface.createFromAsset(getAssets(),"fonts/SIMFANG.TTF");
tv_title = (TextView) findViewById(R.id.tv_title);
tv_title.setTypeface(face);
tv_author = (TextView) findViewById(R.id.tv_author);
tv_author.setTypeface(face);
tv_line1 = (TextView) findViewById(R.id.tv_line1);
tv_line1.setTypeface(face);
tv_line2 = (TextView) findViewById(R.id.tv_line2);
tv_line2.setTypeface(face);
tv_line3 = (TextView) findViewById(R.id.tv_line3);
tv_line3.setTypeface(face);
tv_line4 = (TextView) findViewById(R.id.tv_line4);
tv_line4.setTypeface(face);
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}

最后,还需要补充说明一下:虽然采用这种方式可以实现自己想要的显示效果,但是在采用这种方法之前开发人员还是需要考虑下性能消耗和运行环境以及自己 APP 的风格,然后再做出对应的选择。

原因有以下几点
•字库文件的大小:因为字库的尺寸少则几兆,多则几十兆,文件打包的时候对 *.ttf 格式的文件压缩率很低,所以会无形中增大 APP 的体积。

•运行环境的考虑:如果你的应用面向的是高版本的运行环境,可以考虑使用这种方法,如果用户的运行环境是 Android 2.2 需要放弃该方法。

•应用风格的考虑:如果你的应用既面向高版本运行环境,并且你的应用中统一使用指定的字体,可以考虑使用该方法;若是单单为了应用中的某几个字的显示效果就使用字库,则会得不偿失。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 46%)
分享
qqQQ
qzoneQQ空间
weibo微博

猜你喜欢

Android 编程下字库的使用及注意事项

编程语言 网络编程
Android 编程下字库的使用及注意事项

奶嘴款式及使用注意事项

电脑网络
奶嘴款式及使用注意事项

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

刮痧的注意事项及刮痧后的注意事项

刮痧 保暖 中医养生
刮痧的注意事项及刮痧后的注意事项

使用牙线的注意事项

牙线 牙齿护理
使用牙线的注意事项

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

冰箱使用的注意事项

生活常识
冰箱使用的注意事项

药酒的使用注意事项

中医保健 中医养生 中草药
药酒的使用注意事项

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

WinPE下DiskPart分区的技巧

WinPE下DiskPart分区的技巧

仿酷狗html5手机音乐播放器主要部分代码

仿酷狗html5手机音乐播放器主要部分代码
下拉加载更多内容 ↓