字体生成原理

本文介绍了如何在Android Studio中导入并使用自定义的.ttf字体库,包括在assets文件夹中放置字体文件,然后在代码中创建并设置Typeface。同时,文章还深入探讨了字体生成的内部机制,涉及NIO非阻塞文件读写、JNI层的字体处理,以及Direct Buffer和全局引用等技术。
摘要由CSDN通过智能技术生成

有时候因为一些项目上的需要,我们要导入自己的字体,这里总结一些自己导入时候的操作(使用开发工具是Android studio):
向Android studio里面加入.ttf字体库,在项目的APP中创建assets文件夹,往里面放入ttf字体库,步骤如下:

创建好了assets的文件之后将我们需要使用到的字体库导入
接下来就可以正常使用了; 先在activity_main.xml中添加一个控件
在MainActivity中代码如下:
AppCompatTextView testTv = findViewById(R.id.test_tv);
Typeface typeface = Typeface.createFromAsset(getAssets(),“pmzdbt.ttf”);
testTv.setTypeface(typeface);
testTv.setText(“测试的变化字体形状”);

//系统字体放在/system/fonts目录下,可以通过查看/system/etc/system_fonts.xml来了解系统当前支持的字体文件及其名字对应关系
public static Typeface createFromAsset(AssetManager mgr, String path) {
if (sFallbackFonts != null) {
synchronized (sDynamicTypefaceCache) {
final String key = createAssetUid(mgr, path);
Typeface typeface = sDynamicTypefaceCache.get(key);//字体已经在cache中 不再添加
if (typeface != null) return typeface;

            FontFamily fontFamily = new FontFamily();
            if (fontFamily.addFontFromAsset(mgr, path)) {
                FontFamily[] families = { fontFamily };
                typeface = createFromFamiliesWithDefault(families);
                sDynamicTypefaceCache.put(key, typeface);字体放入cache中 
                return typeface;
            }
        }
    }
    throw new RuntimeException("Font asset n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值