android 怎么加入字体包

android 怎么加入字体包,第1张

android 加入字体

工具

Eclipse

方法

在Eclipse中新建Android工程fontdemo

代码只有MainActivity.javaCustomFontTextView.java

布局文件是activity_main.xml。assets下面是使用的字体库文件

核心代码是CustomFontTextView.java.CustomFontTextView继承自TextView,

在初始化的时候读取自定义的字体库

在布局文件中,像普通的TextView一样,引用自定义的这个文件

MainActivity只负责展示自定义的这个TextView

效果

android中是可以使用自定义的字体,将字体文件ttf格式的放在asserts,:

/*

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

* 并提供相对路径给creatFromAsset()来创建Typeface对象

*/

Typeface fontFace = Typeface.createFromAsset(getAssets(),

"fonts/STXINGKA.TTF")

// 字体文件必须是true type font的格式(ttf);

// 当使用外部字体却又发现字体没有变化的时候(以 Droid Sans代替),通常是因为

// 这个字体android没有支持,而非你的程序发生了错误

把icon.ttf 字体库放入assets文件夹下

自定义类

public class Icon implements LayoutInflaterFactory {

    private static Typeface mTypeFace

    private AppCompatDelegate mAppCompatDelegate

    public Icon(Context context,AppCompatDelegate AppCompatDelegate) {

        if(mTypeFace ==null)

            mTypeFace = Typeface.createFromAsset(context.getAssets(),"icon.ttf")

        this.mAppCompatDelegate = AppCompatDelegate

    }

    @Override

    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {

        View view =  mAppCompatDelegate.createView(parent, name, context, attrs)

        if (view instanceof TextView) {

            ((TextView)view).setTypeface(mTypeFace)

        }

        return view

    }

}

在activity 的oncreate 的实现代码

@Override

protected void onCreate(Bundle savedInstanceState) {

    LayoutInflaterCompat.setFactory(getLayoutInflater(),new Icon(this,getDelegate()))

    super.onCreate(savedInstanceState)

    setContentView(R.layout.activity_main)

    

}


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

原文地址: http://outofmemory.cn/bake/11614775.html

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

发表评论

登录后才能评论

评论列表(0条)

保存