android引用外部字体

做Android开发的时候,一些软件会要求一些特殊字体,我们需要引入外部的ttf格式的字体到程序中,具体操作步骤为:

在安卓应用程序的目录assets中新建fonts目录,将我们需要使用的ttf字体文件复制进去(otf格式的直接把后缀名改为ttf的就行了),然后代码:

// 将字体文件保存在assets/fonts/目录下,在程序中通过如下方式实例化自定义字体:
Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSansThai.ttf");
// 应用字体
textView.setTypeface(typeFace);

PS:1.如果想在此基础上再次对字体进行加粗,在界面配置的XML文件中使用android:textStyle="bold"是徒劳的,木有效果,此时怎么做?

我们可以依旧在代码中控制,加上一行代码:

et_note.getPaint().setFakeBoldText(true);就可以实现了

如果想整个界面都使用同样的字体,可以使用批处理,新增一个Java类,如下:

代码会用来加载所有的基于TextView的文本组件(TextView、Button、RadioButton、ToggleButton等等),而无需考虑界面的布局层级如何。(内存浪费较大)

另外ttf 字体库文件都比较大,会增加安装包的体积哦

public class FontManager {  

   

    public static void changeFonts(ViewGroup root, Activity act) {  

   

       Typeface tf = Typeface.createFromAsset(act.getAssets(),  

              "fonts/xxx.ttf");  

   

       for (int i = 0; i < root.getChildCount(); i++) {  

           View v = root.getChildAt(i);  

           if (v instanceof TextView) {  

              ((TextView) v).setTypeface(tf);  

           else if (v instanceof Button) {  

              ((Button) v).setTypeface(tf);  

           else if (v instanceof EditText) {  

              ((EditText) v).setTypeface(tf);  

           else if (v instanceof ViewGroup) {  

              changeFonts((ViewGroup) v, act);  

           }  

       }  

   

    }  

}  

更多:https://segmentfault.com/q/1010000000494116

时间: 2024-10-25 04:45:13

android引用外部字体的相关文章

在WPF(core版本)中引用外部字体不可用问题说明

这几天使用WPF写软件,想引用外部字体,于是下载了字体文件: 然后在App.xaml中添加了如下代码: <FontFamily x:Key="Digital-7 Mono"> pack://application:,,,/IVFTempMonitor;component/Fonts/Digital7Mono-B1g5.ttf#Digital-7 Mono </FontFamily> 字体存放目录: 在MainWindow.xaml中使用上面定义的字体,代码如下:

html页面,css引用外部字体

@font-face { font-family: 'Tw'; src: url('../fonts/Tw.eot'); src: url('../fonts/Tw.eot?#iefix') format('embedded-opentype'), url('../fonts/Tw.woff') format('woff'), url('../fonts/Tw.ttf') format('truetype'), url('../fonts/Tw.svg#Tw') format('svg'); f

CSS在线字体库,外部字体的引用方法@font-face

@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许多人会不自然的问,这样的东西IE能支持吗?当我告诉大家@font-face这个功能早在IE4就支持了你肯定会感到惊讶.我的Blog就使用了许多这样的自定义Web字体,比如说首页的Logo,Tags以及页面中的手写英文体,很多朋友问我如何使用,能让自己的页面也支持这样的自定义字体,一句话这些都是@fo

DIV+CSS外部字体引用

注意: 由于各个浏览器兼容问题大家还是少用这个,下面是具体的使用方法和效果截图: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <he

android开发不同字体设置

开发中控制不同的文字字体主要是对Typeface对象的使用 因为是简单的demo,都是使用android原生的组件,虽丑,可以学到东西就ok啦!(若有错误或者不足,请各位不吝赐教,谢谢!) 先看看简单运行的效果吧 即设置俩个button,一个textView,点击不同的按钮时,触发不同的事件.直接上代码 MainActivity.java 1 public class MainActivity extends Activity implements OnClickListener { 2 3 p

android加载字体内存泄漏的处理方法

在开发android app的开发过程中,会使用到外部的一些字体.外部字体在加载的时候,容易造成内存泄漏. 比如: Typeface tf=Typeface.createFromAsset(getAssets(), Consts.LANTING_FONT_PATH); title.setTypeface(tf); 如果在每次调用的时候都这样写,会造成每次执行的时候都会重新加载一次该字体,导致内存不断变大. 跑monkey测试的时候,执行: adb shell dumpsys meminfo [p

shell if判断(曾经被一个字符串相等的判断纠结半小时,最后只是if后少了个空格!) 和 awk引用外部变量判断

一.if判断 数字: $A=12 $B=15 if(("$A"<"$B")) if(("$A"=="$B")) 字符串: $A="HELLO" $B="WORLD" if [ "$A" = "FACT_LOGIN_USER" ] if [ "$A" = "$B" ] PS:字符串比较的时候注意 'if'

Android实现自定义字体

介绍 最近在看开源项目的时候,发现里面涉及到了自定义字体,虽然自己目前还用不到,但是动手demo笔记记录一下还是有必要的,没准哪天需要到这个功能. 原理 1.其实实现起来非常简单,主要是用到了Typeface这个类,通过加载assets里的ttf字体,调用View.setTypeface实现原生字体替换. 默认自带样式 public static final int NORMAL = 0; public static final int BOLD = 1; public static final

利用命令行引用外部jar包以使程序正常运行的4种方法

声明:本博客为原创博客,未经允许,不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo时我比较喜欢用UltraEdit或记事本写完后,直接利用命令行进行编译和运行.这样的好处就是方便快捷.相信有这个习惯的人应该还大有人在.但是如果要引用外部jar包,应该如何操作呢?在写JDBC的一些Demo时,由于要利用jar包来加载相应的数据库,每个Demo都用到了外部jar包,所以特地总结了一下