android 更换字体

1、 必须事先在assets底下创建一fonts文件夹 并放入要使用的字体文件(.ttf)

2、写一个manager

/**
 * 设置字体
 *
 */
public class FontManager {

    static String fongUrl = "fonts/fzltxh.ttf";

    static Typeface tf;

    public static void applyFont(Context context, ViewGroup root, String fontName) {

        Typeface tf = getFont(context);

        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) {
                applyFont(context, (ViewGroup) v, fontName);
            }
        }
    }

    public static Typeface getFont(Context context) {
//        if (tf == null) {
//            tf = Typeface.createFromAsset(context.getAssets(), fongUrl);
//        }
//        return tf;
        return Typeface.DEFAULT;
    }
}

  

3、重写TextView

/**
 * 自定义TextView
 *
 */
public class MyTextView extends TextView {

    public MyTextView(Context context) {
        super(context);
        init(context);
    }

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public MyTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }

    private void init(Context context) {
         Typeface setFont = FontManager.getFont(context);
         if (setFont != null) {
             setTypeface(setFont);
         }
    }

}

  

4、在xml中直接用MyTextView,呆着全路径,直接替换TextView

  另一种textView.setTypeface(FontManager.getFont());

时间: 2024-11-29 06:27:48

android 更换字体的相关文章

关于Android的字体简述

一.字体分析 1.1.文件系统中字体的位置: /system/fonts/ 其中的ttf文件都是字库对于源码/frameworks/data/fonts/下的字体文件 DroidSans-Bold.ttf 粗体的无衬线字体(拉丁字母等) DroidSans.ttf 常规的无衬线字体(拉丁字母等) DroidSansFallback.ttf 常规的无衬线字体(中文字符等,一般换字库就是替换此文件) DroidSansMono.ttf 等宽的无衬线字体(拉丁字母等) DroidSerif-Bold.

Android更换皮肤解决方案

Android更换皮肤解决方案 转载请注明出处:IT_xiao小巫 本篇博客要给大家分享的一个关于Android应用换肤的Demo,大家可以到我的github去下载demo,以后博文涉及到的代码均会上传到github中统一管理. github地址:https://github.com/devilWwj/Android-skin-update 思路 换肤功能一般有什么? 元素一般有背景颜色.字体颜色.图片.布局等等 我们知道Android中有主题Theme还有style,theme是针对整个act

【转载】深度解析Android中字体设置

原文:http://mobile.51cto.com/android-265238.htm 1.在Android XML文件中设置字体 可以采用Android:typeface,例如android:typeface=”monospace”.在这里例子中我们在Activity中对android:text=”Hello, World! 您好”分别进行了四种显示方式,依次为“Sans”,“serif”,“monospace”和系统缺省方式(经试验缺省采用采用sans).英文字体有差异,貌似中文字体没有

android 设置字体颜色、EditText自动输入转换成大写字母的多种方式

在TextView上面设置某一个字的字体颜色为指定颜色时,可以通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void setText(TextView t){ String text = t.getText().toString().trim(); SpannableString span = new SpannableString(text); span.setSpan(new ForegroundColorS

关于android的字体大小

http://mobile.51cto.com/design-351567.htm 关于android的字体大小,布布扣,bubuko.com

Android 中文字体的设置方法和使用技巧

Android TextView字体颜色等样式具体解释连接:http://blog.csdn.net/pcaxb/article/details/47341249 1.使用字体库(自己定义字体的使用):当然假设字体库和手机的不兼容获取什么的,可能你的中文是无效的 (1)在assets中新建文件夹fonts,把ttf字体库考到文件夹下 (2)使用代码 TextView view1 = (TextView) findViewById(R.id.tv1); Typeface tf1 = Typefac

android更换工具链

欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=73 android编译系统是跟随android源码一起发布的,使用了gcc编译器,也就是所谓的交叉编译环境.android-4.2里用的编译器是gcc4.6,本篇升级gcc4.6到gcc4.6,修改并不复杂.当然,涉及到一些语法上的修改. android更换工具链

Android系统字体规范

我们在做Android移动APP设计的时候,字号的选择也是很让人头疼,转载一份有关Android系统字体规范,如果在做Android项目的用户应该看看,如果有任何建议欢迎在留言处与我们交流探讨. 主要从以下几点做了分析: 移动设计中与字号有关的基本概念 Android系统默认字体及字号 Android字体单位sp与px的换算 规范字号的意义 印刷业的规范字号的用法 Android规范字号的近似用法 如何向前端输出? 如何在photoshop里选择字号? 1. 移动设计中与字号有关的基本概念 px

Android默认字体ASCII码中可显示字符的平均灰度由小到大排序

如题: 46,96,39,58,45,44,59,34,95,126,33,94,105,114,124,47,73,61,60,62,42,108,92,49,116,43,106,63,118,41,40,76,102,123,55,125,74,84,99,120,122,93,91,117,110,115,89,111,70,121,101,50,97,86,107,51,104,90,67,52,80,53,65,113,88,112,69,37,48,85,100,98,54,75,