已解决
Android 字体资源
来自网友在路上 166866提问 提问时间:2023-11-04 08:30:23阅读次数: 66
最佳答案 问答题库668位专家为你答疑解惑
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。
未经允许不得转载
目录
- 一、导读
- 二、概览
- 三、 XML 中的字体
- 四、 可下载字体
- 五、 推荐阅读
一、导读
我们继续总结学习Android 基础知识,温故知新。
本文讲述字体相关知识。
二、概览
字体资源定义了可在应用中使用的自定义字体。字体可以是单独的字体文件或字体文件的集合,称为字体系列,并在 XML 中定义。
三、 XML 中的字体
Android 8.0(API 级别 26)引入了“XML 中的字体”这项新功能,可让您将字体用作资源。您可以在 res/font/ 文件夹中添加 font 文件,将字体捆绑为资源。
我们可以将字体当做一个资源直接使用,同图片一样,只是目录不一样,
res/font/filename.ttf (.ttf、.ttc、.otf 或 .xml)
有了字体文件后,还需要再定义一个xml文件来引用,做一个中转,
<?xml version="1.0" encoding="utf-8"?>
<font-family><fontandroid:font="@[package:]font/font_to_include"android:fontStyle=["normal" | "italic"]android:fontWeight="weight_value" />
</font-family>
然后就可以直接使用了,我们举个例子:
- res/font/filename.ttf
- 定义 res/font/lobster.xml
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"><fontandroid:fontStyle="normal"android:fontWeight="400"android:font="@font/lobster_regular" /><fontandroid:fontStyle="italic"android:fontWeight="400"android:font="@font/lobster_italic" />
</font-family>
- 引用
<?xml version="1.0" encoding="utf-8"?>
<EditTextandroid:fontFamily="@font/lobster"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Hello, World!" />
也可以通过代码之间引用
Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
四、 可下载字体
从 Android 8.0(API 级别 26)和 Android 支持库 26 开始,可以支持 API 从提供程序应用请求获取字体,而不是将文件绑定到应用或让应用下载字体。
字体提供程序是一个应用,可检索字体并将其缓存在本地,以便其他应用可以请求获取和共用字体。
字体由外部提供。
eg:
- 在 res/values/ 中定义证书数组的 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="certs"><item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item></string-array>
</resources>
- 在 res/font/lobster.xml 中定义字体来源的 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"android:fontProviderAuthority="com.example.fontprovider.authority" 定义字体请求的字体提供程序的授权android:fontProviderPackage="com.example.fontprovider" 要用于请求的字体提供程序的软件包名称。此属性用于验证提供程序的身份android:fontProviderQuery="Lobster" 字体的字符串查询。android:fontProviderCerts="@array/certs"> 定义用于为此提供程序签名的证书的哈希集
</font-family>
- 在 res/layout/ 中应用
<?xml version="1.0" encoding="utf-8"?>
<EditTextandroid:fontFamily="@font/lobster"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Hello, World!" />
字体
五、 推荐阅读
Java 专栏
SQL 专栏
数据结构与算法
Android学习专栏
未经允许不得转载
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"Android 字体资源":http://eshow365.cn/6-31645-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 学习剑指jvm
- 下一篇: 腾讯云3年/5年特惠云服务器购买入口及攻略