android 更改整个应用字体
来源:互联网 发布:添加路由 linux 编辑:程序博客网 时间:2024/05/16 11:34
单独设置TextView的字体比较简单:
Typeface fontFace = Typeface.createFromAsset(getAssets(), "fonts/STXINGKA.TTF"); // 字体文件必须是true type font的格式(ttf); // 当使用外部字体却又发现字体没有变化的时候(以 Droid Sans代替),通常是因为 // 这个字体android没有支持,而非你的程序发生了错误 TextView text = (TextView) findViewById(R.id.ttf); text.setTypeface(fontFace);
如果要设置整个应用的字体就比较麻烦了,一种实现方式是自定义TextView,但是很麻烦,并且button等控件还不能使用。下面介绍一种简单的方式,通过反射实现改变所有的字体。
首先拷贝自定义字体到assets/fonts下,然后在自定义Application中设置改变字体。
public class FontsOverride { public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) { final Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName); replaceFont(staticTypefaceFieldName, regular); } protected static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) { try { final Field staticField = Typeface.class .getDeclaredField(staticTypefaceFieldName); staticField.setAccessible(true); staticField.set(null, newTypeface); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }}
在自定义Application中设置:
FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/HYXiZYJF.ttf"); FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/HYXiZYJF.ttf"); FontsOverride.setDefaultFont(this, "SERIF", "fonts/HYXiZYJF.ttf"); FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/HYXiZYJF.ttf");
搞定了,测试正常。
0 0
- android 更改整个应用字体
- Android为整个应用切换第三方字体
- Android为整个应用切换第三方字体
- 关于Android如何更换整个应用字体的总结
- android更改全局字体
- android退出整个应用
- android 退出整个应用
- Android退出整个应用
- Android引入外部字体更改APP字体
- 【Android】更改 TimePicker 字体颜色
- Android App 退出整个应用
- Android应用图标更改
- android应用自定义字体
- android应用自定义字体
- Android应用字体替换
- Android应用修改字体
- android 应用字体
- Android 字体的应用
- 车牌定位--颜色分割
- 【leetcode】【单链表,queue】【2】Add Two Numbers
- soapUi发送报文错误导致原因CDATA嵌套问题
- 关于div+css设置居中问题
- 数字矩阵->图片
- android 更改整个应用字体
- OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
- 忠国:胜利一定会来赴约
- android sdk离线安装
- TCP 小记————三次握手四次挥手详解
- C语言基础——知识点笔记整理1
- jsonp跨域问题原理解析
- oranotes
- 深入Java虚拟机——JVM内存详解