Android字体资源

  • 1.概述
  • 2.没有Support Library 26库
  • 3.有Support Library 26库
    • 3.1.下载字体
      • 3.1.1.语法
      • 3.1.2.示例

1.概述

Android 8.0 (API 26)提供了一个新特性,即在xml定义字体。意味着字体作为一种资源的形式存在。我们将字体文件(.ttf或.otf)添加到res/font/文件夹中,将字体捆绑为资源。这些字体会在R 文件中被编译,并在 Android Studio 中自动提供。我们可以通过@font/myfont在布局文件中使用,或R.font.myfont在Java中使用。为了能够在Android 4.1(API 16)的设备上使用这个新特性,我们的应用app要加入Support Library 26库。
那么我们以是否有Support Library 26库作为分界线来讨论字体的使用问题。

2.没有Support Library 26库

新建Assets及fonts目录,并将字体文件拷贝到fonts目录下

在java代码中使用:

TextView mTV = findViewById(R.id.tv);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/华文彩云.TTF");
mTV.setTypeface(typeface);

3.有Support Library 26库

新建资源目录font,并将字体文件拷贝到font目录下:
(注意 :资源文件名都要求用小写的英文字命名)

在布局文件中使用:

    <TextViewandroid:fontFamily="@font/pop"android:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

在java中使用:

        TextView mTV = findViewById(R.id.tv);Typeface typeface = ResourcesCompat.getFont(this,R.font.pop);mTV.setTypeface(typeface);

3.1.下载字体

这种方式是不把字体文件放在本地,而是在需要时,去网络上请求。

3.1.1.语法

    <?xml version="1.0" encoding="utf-8"?><font-familyandroid:fontProviderAuthority="authority"android:fontProviderPackage="package"android:fontProviderQuery="query"android:fontProviderCerts="@[package:]array/array_resource" />
  • android:fontProviderAuthority:必需。定义字体请求的字体提供程序的授权。
  • android:fontProviderPackage:必需。要用于请求的字体提供程序的软件包名称。此属性用于验证提供程序的身份。
  • android:fontProviderQuery:必需。字体的字符串查询。
  • android:fontProviderCerts:数组资源。必需。定义用于为此提供程序签名的证书的哈希集。此属性用于验证提供程序的身份,仅当提供程序不属于系统映像的一部分时才是必需的。该值可以指向单个列表(字符串数组资源)或列表的列表(数组资源),其中每个单独的列表代表一个签名哈希集合。

3.1.2.示例

保存于 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>

定义证书数组的 XML 文件保存在 res/values/ 中:

    <?xml version="1.0" encoding="utf-8"?><resources><string-array name="certs"><item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item></string-array></resources>

应用字体:

<?xml version="1.0" encoding="utf-8"?><EditTextandroid:fontFamily="@font/lobster"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello, World!" />

Android字体资源相关推荐

  1. android开发文本字体包,AndroidStudio 实现加载字体资源的方法

    AndroidStudio 实现加载字体资源的方法 在android中字体的格式总是不能尽善尽美的显示出来 ,  于是要求我们使用一些有美感的字体,加载的方式(就像HTML的字体一样),我们需要通过加 ...

  2. 一、android XML资源文件详解 —— 从物理上分析

    转载地址:http://blog.csdn.net/Scotfield_msn/article/details/52455022?locationNum=8 一.android工程文件夹内容介绍 在e ...

  3. 浅析Android字体加载原理

    浅析Android字体加载原理 前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解. 内容 概述 And ...

  4. 货拉拉 Android 动态资源管理系统原理与实践(上)

    点击上方蓝字关注我,知识会给你力量 ❝ jary,货拉拉高级客户端工程师,目前负责货拉拉App Android端稳定性提升,包体积优化相关工作. ❞ 前言 随着公司业务的扩展,货拉拉用户端apk包的体 ...

  5. 货拉拉 Android 动态资源管理系统原理与实践(下)

    点击上方蓝字关注我,知识会给你力量 so资源动态化方案 so资源打包问题 在打包so资源的过程中,我们遇到了如下问题. 如何移除apk中的so文件,并将他们收集起来? 如何将多个so文件压缩打包,并生 ...

  6. android 字体大小换算,Android单位换算与UI适配

    一,pt.px.屏幕尺寸.分辨率及ppi关系与单位换算 pt(point):磅,一个标准的固定长度单位,大小为1/72英寸. 主要用于印刷和平面设计 1inch = 2.54cm = 72pt px( ...

  7. Android应用资源---布局资源类型(Layout)

    布局资源定义了UI的Activity或组件的界面架构. 文件位置(FILE LOCATION): res/layout/filename.xml 文件名被用作资源ID. 被编译资源的数据类型(COMP ...

  8. 【Flutter】Flutter 自定义字体 ( 下载 TTF 字体 | pubspec.yaml 配置字体资源 | 同步资源 | 全局应用字体 | 局部应用字体 )

    文章目录 一.Flutter 自定义字体 1.ttf 字体文件 2.ttf 字体资源配置 3.获取字体 4.全局使用字体 5.局部使用字体 二.完整代码示例 三.相关资源 一.Flutter 自定义字 ...

  9. android 变化字体,android 字体修改

    android字体的设置有以下方法: 1)直接在代码设置Typeface customFont = Typeface.createFromAsset(this.getAssets(), "1 ...

最新文章

  1. 阿里mysql连接数据库服务器配置_配置链接mysql数据库
  2. 微信验证以及登录流程
  3. 鸢尾花分类_机器学习:鸢尾花数据集--贝叶斯分类
  4. MATLAB实战系列(二十四)-MATLAB粒子群(PSO)优化算法在电力系统中的应用程序集合
  5. 几道题帮你搞定数据选择器
  6. HDU 3486 Interviewe RMQ
  7. 练字格子纸模板pdf_高考英语作文模板(总结八种常考题型,配合例文,纯手打的)...
  8. 30岁之前创业成功的12个要点
  9. Java ByteCode
  10. 按键精灵打怪学习-多窗口多线程后台技能
  11. PAT甲级 1097
  12. 计算机网络 之 局域网
  13. 【离散】画哈斯图--最好理解绝不会出错
  14. matlab PTB 学习笔记02——开启PTB设置
  15. SQL巩固以及数据库、表结构优化
  16. 微信小程序:block制作动态商品列表
  17. Kafka——Sender 线程分析
  18. android 6.0 logcat机制(一)java层写log,logd接受log
  19. FTP服务器的上传与下载
  20. html5 手机uc浏览器 复制链接,删除手机UC浏览器强制插入关键词链接的方法

热门文章

  1. Debian 凝思系统 下一个网卡 绑 定多个 ip 的方法
  2. 马蜂窝数据仓库的架构、模型与应用实践(转)
  3. 16-3d和盒阴影和遮罩
  4. Word如何设置页码?3个简单方法快速设置!
  5. 基于运放的电压放大电路设计
  6. 模型调参利器--hyperopt
  7. mysql查询10分钟内的数据库_十分钟了结MySQL information_schema
  8. 计算机排版比赛,Word排版大赛 敲响IT精英最强音
  9. CC2540 内存结构分析
  10. 解决——》[Err] 1093 - You can't specify target table 'fcf' for update in FROM clause