本文介绍: 关于作者:CSDN内容合伙人、技术专家, 从零开始日活千万级APP。专注于分享领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持未经允许不得转载。

关于作者:CSDN内容合伙人、技术专家, 从零开始日活千万级APP。
专注于分享领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持
未经允许不得转载

在这里插入图片描述

一、导读

我们继续总结学习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>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" /&gt;
</font-family&gt;

然后可以直接使用了,我们举个例子

  1. res/font/filename.ttf
  2. 定义 res/font/lobster.xml
<?xml version="1.0" encoding="utf-8"?&gt;
<font-family xmlns:android="http://schemas.android.com/apk/res/android"&gt;
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/lobster_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/lobster_italic" />
</font-family>
  1. 引用
<?xml version="1.0" encoding="utf-8"?>
<EditText
    android: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:

  1. res/values/ 中定义证书数组的 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>
  1. 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>
  1. res/layout/ 中应用

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

字体

五、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

未经允许不得转载

ddd

原文地址:https://blog.csdn.net/fumeidonga/article/details/134063803

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11815.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注