android 加载ttf流程分析,Android自定义字体 TextView 从SD卡加载TTF字体
Android自定义字体非常简单,能够从assets和SD卡两处加载标准的ttf字体。要实现自定义字体,只需借助工具类Typeface即可。文末有工程源码。
如果发生了Caused by: java.lang.RuntimeException: native typeface cannot be made的异常的话,请检查字体路径。另外我发现少数TTF字体可能因为体积太大的原因,也会报这个异常。
从assets里加载的时候,会增加apk包的体积,使用方法:
// 加载assets中的字体
TextView textView1 = (TextView) findViewById(R.id.textView1);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/1.ttf");
textView1.setTypeface(typeface);
从sd卡里加载的时候,并不需要额外的SD卡读权限,实现方法:
// 加载SD卡中的字体
TextView textView2 = (TextView) findViewById(R.id.textView2);
Typeface typeface2 = Typeface.createFromFile(Environment.getExternalStorageDirectory() + "/2.ttf");
textView2.setTypeface(typeface2);
源码工程上传中,你可以在此处找到。
android 加载ttf流程分析,Android自定义字体 TextView 从SD卡加载TTF字体相关推荐
- android 休眠唤醒驱动流程分析,Android 电源管理——gotosleep和userActivity关注
一.Android power management应用层分析 Android提供了android.os.PowerManager类,该类用于控制设备的电源状态的切换. 该类对外有三个接口函数: 1. ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )
文章目录 前言 一.RawDexFile.cpp 中 dvmRawDexFileOpen() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLoader 加载 ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 查找 DexFile 对应的C代码 | dalvik_system_DexFile.cpp 分析 )
文章目录 前言 一.查找 DexFile 对应的 C++ 代码 1.根据 Native 文件命名惯例查找 C++ 代码 2.根据方法名查找 二.dalvik_system_DexFile.cpp 源码 ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexFile loadDexFile 函数 | 构造函数 | openDexFile 函数 )
文章目录 前言 一.DexFile.loadDexFile 函数分析 二.DexFile 构造函数分析 三.DexFile.openDexFile 函数分析 前言 上一篇博客 [Android 逆向] ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 中根据 File 加载 DexFile | loadDexFile 分析 )
文章目录 前言 一.根据 File 加载 DexFile 二.DexPathList.loadDexFile 函数分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLo ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 构造函数分析 | makeDexElements 函数分析 )
文章目录 前言 一.DexPathList 构造函数分析 二.DexPathList.makeDexElements 函数分析 三.Element 类分析 前言 上一篇博客 [Android 逆向]整 ...
- android加载efi分区,高通Android UEFI XBL 代码流程分析
高通Android UEFI XBL 代码流程分析 背景 之前学习的lk阶段点亮LCD的流程算是比较经典,但是高通已经推出了很多种基于UEFI方案的启动架构. 所以需要对这块比较新的技术进行学习.在学 ...
- 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | Class.cpp#findClassNoInit 函数 | DexFile.cpp#dexFindClass 函数分析 )
文章目录 前言 一.Class.cpp#dvmDefineClass 函数分析 二.Class.cpp#findClassNoInit 函数分析 三.DexFile.cpp#dexFindClass ...
- 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | native 函数查询 | dalvik_system_DexFile.cpp#defineClassNative 函数 )
文章目录 前言 一.查询 defineClassNative 函数 二.dalvik_system_DexFile.cpp#Dalvik_dalvik_system_DexFile_defineCla ...
最新文章
- 关于第三方IOS的checkBox框架的使用
- 【转】IOS动画的实现,其实很简单
- 转:初学者简易 .vimrc编写指南
- [SDOI2011]染色
- java 回调函数很好懂
- php-cms,GitHub - lovelife10000/L-php-cms: 基于laravel框架开发的一款php CMS内容管理系统,前端采用angular、jquery技术...
- python 函数可以作为容器对象的元素_python基础(十四):函数对象与闭包
- Selenium系列文章汇总
- 78oa mysql_78OA系统安装后无法打开解决方案
- Bailian2787 算24【DFS】(POJ NOI0205-1789)
- freeswitch 使用mysql替换默认的sqlite
- Python-编码格式
- IDEA导入项目后报错缺失jar包
- c语言中关系运算符和逻辑运算符,c语言中的关系运算符和逻辑运算符
- 电力拖动自动控制系统_教授为你解读“电气工程及其自动化”专业类
- win10非核心版本的计算机上
- Fisher精确检验【转载】
- Python编程之找完数
- facebook的network-connection-class(测量移动端网络质量)源码详解
- 山海演武传·黄道·第一卷 雏龙惊蛰 第二十五 ~ 二十六章 赤龙与紫龙