Android字体资源
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字体资源相关推荐
- android开发文本字体包,AndroidStudio 实现加载字体资源的方法
AndroidStudio 实现加载字体资源的方法 在android中字体的格式总是不能尽善尽美的显示出来 , 于是要求我们使用一些有美感的字体,加载的方式(就像HTML的字体一样),我们需要通过加 ...
- 一、android XML资源文件详解 —— 从物理上分析
转载地址:http://blog.csdn.net/Scotfield_msn/article/details/52455022?locationNum=8 一.android工程文件夹内容介绍 在e ...
- 浅析Android字体加载原理
浅析Android字体加载原理 前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解. 内容 概述 And ...
- 货拉拉 Android 动态资源管理系统原理与实践(上)
点击上方蓝字关注我,知识会给你力量 ❝ jary,货拉拉高级客户端工程师,目前负责货拉拉App Android端稳定性提升,包体积优化相关工作. ❞ 前言 随着公司业务的扩展,货拉拉用户端apk包的体 ...
- 货拉拉 Android 动态资源管理系统原理与实践(下)
点击上方蓝字关注我,知识会给你力量 so资源动态化方案 so资源打包问题 在打包so资源的过程中,我们遇到了如下问题. 如何移除apk中的so文件,并将他们收集起来? 如何将多个so文件压缩打包,并生 ...
- android 字体大小换算,Android单位换算与UI适配
一,pt.px.屏幕尺寸.分辨率及ppi关系与单位换算 pt(point):磅,一个标准的固定长度单位,大小为1/72英寸. 主要用于印刷和平面设计 1inch = 2.54cm = 72pt px( ...
- Android应用资源---布局资源类型(Layout)
布局资源定义了UI的Activity或组件的界面架构. 文件位置(FILE LOCATION): res/layout/filename.xml 文件名被用作资源ID. 被编译资源的数据类型(COMP ...
- 【Flutter】Flutter 自定义字体 ( 下载 TTF 字体 | pubspec.yaml 配置字体资源 | 同步资源 | 全局应用字体 | 局部应用字体 )
文章目录 一.Flutter 自定义字体 1.ttf 字体文件 2.ttf 字体资源配置 3.获取字体 4.全局使用字体 5.局部使用字体 二.完整代码示例 三.相关资源 一.Flutter 自定义字 ...
- android 变化字体,android 字体修改
android字体的设置有以下方法: 1)直接在代码设置Typeface customFont = Typeface.createFromAsset(this.getAssets(), "1 ...
最新文章
- 阿里mysql连接数据库服务器配置_配置链接mysql数据库
- 微信验证以及登录流程
- 鸢尾花分类_机器学习:鸢尾花数据集--贝叶斯分类
- MATLAB实战系列(二十四)-MATLAB粒子群(PSO)优化算法在电力系统中的应用程序集合
- 几道题帮你搞定数据选择器
- HDU 3486 Interviewe RMQ
- 练字格子纸模板pdf_高考英语作文模板(总结八种常考题型,配合例文,纯手打的)...
- 30岁之前创业成功的12个要点
- Java ByteCode
- 按键精灵打怪学习-多窗口多线程后台技能
- PAT甲级 1097
- 计算机网络 之 局域网
- 【离散】画哈斯图--最好理解绝不会出错
- matlab PTB 学习笔记02——开启PTB设置
- SQL巩固以及数据库、表结构优化
- 微信小程序:block制作动态商品列表
- Kafka——Sender 线程分析
- android 6.0 logcat机制(一)java层写log,logd接受log
- FTP服务器的上传与下载
- html5 手机uc浏览器 复制链接,删除手机UC浏览器强制插入关键词链接的方法
热门文章
- Debian 凝思系统 下一个网卡 绑 定多个 ip 的方法
- 马蜂窝数据仓库的架构、模型与应用实践(转)
- 16-3d和盒阴影和遮罩
- Word如何设置页码?3个简单方法快速设置!
- 基于运放的电压放大电路设计
- 模型调参利器--hyperopt
- mysql查询10分钟内的数据库_十分钟了结MySQL information_schema
- 计算机排版比赛,Word排版大赛 敲响IT精英最强音
- CC2540 内存结构分析
- 解决——》[Err] 1093 - You can't specify target table 'fcf' for update in FROM clause