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

Android 编程下字库的使用及注意事项,第1张

概述在安卓 *** 作系统下对于TextView字体的支持非常有限,默认情况下TextView的typeface属性支持\"Sans\",\"serif\",\"monospace\"这三种字体,如果在没有指定字体的情况下,系统缺省会使用\"Sans\"作为文本显示的字体。 在安卓 *** 作系统下对于 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 需要放弃该方法。

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

您可能感兴趣的文章:Android Studio 导入开源项目的正确姿势及注意事项Android Studio3.0升级后使用注意事项及解决方法Android 程序执行Linux命令的解决方法及注意事项将Eclipse工程转Android Studio工程的步骤与注意事项AndroidStudio升级到3.0的新特性和注意事项小结详解Android Service 使用时的注意事项Android 中ViewPager中使用WebView的注意事项Android TimerTask 的简单应用及注意事项Android 如何使用log4j及注意事项Android集成百度地图开发流程和注意事项Android onNewIntent()触发机制及注意事项Android Studio添加第三方库的注意事项Android 程序申请权限注意事项Android Service自启动注意事项分析关于Android WebView的loadData方法的注意事项分析Android NDK中socket的用法以及注意事项分析Android生存指南之:开发中的注意事项60条Android开发注意事项与经验总结 总结

以上是内存溢出为你收集整理的Android 编程下字库的使用及注意事项全部内容,希望文章能够帮你解决Android 编程下字库的使用及注意事项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1142919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存