Android中的字体设置-Typeface

Android字体系列 (二):Typeface完全解析 FontFamily主要就是用来构建 Typeface 的一个类,注意和在 Xml 属性中设置的 android:fontFamily 区分开来就好了总结下本篇文章所讲的一些重点内容:1、Typeface 初始化对字体和 Style 会有一些默认实现2、Typeface create 系列方法支持从系统默认字体、 assets 目录、字体文件以及字体路径去获取字体3、Typeface 本身支持缓存,我们在使用的时候无需注意效率问题好了,本篇文章到这里就结束了,希望能给你带来帮助 🤝。 阅读详情

在Typeface中,定义了常用的字体类型和字体样式:

  • 字体类型
    • Typeface.DEFAULT:默认字体,常规字体类型
    • Typeface.DEFAULT_BOLD:黑体字体类型
    • Typeface.MONOSPACE:等宽字体类型
    • Typeface.SANS_SERIF:sans serif字体类型
  • 字体样式
    • Typeface.BOLD //粗体
    • Typeface.BOLD_ITALIC //粗斜体
    • Typeface.ITALIC //斜体
    • Typeface.NORMAL //常规

在Typeface类中,定义了一系列的静态方法-create,用来创建Typeface实例:

  • create(Typeface family, int style):创建一个Typeface实例,其与指定的Typeface当前字体和指定样式相匹配。其中,

    val typeSrc: Typeface = ...
    val font: Typeface  = Typeface.create(familyName,Typeface.BOLD)
    
  • create(String familyName, int style):创建一个给定字体名称和指定样式的Typeface实例

    val familyName: String  = "楷体";
    val font: Typeface = Typeface.create(familyName,Typeface.BOLD)
    
  • createFromAsset(AssetManager mgr, String path):从指定的字体数据中创建一个新的字体,该用法用于Android引入其他的字体。其中,path是字体文件保存在assets文件夹下的的路径,字体文件有.ttf和.otf等格式。

    //得到AssetManager
    AssetManager mgr=getAssets();
    //根据路径得到Typeface
    Typeface tf=Typeface.createFromAsset(mgr, "fonts/iconfont.ttf");
    
  • createFromFile(File file):从指定的字体文件创建新的Typeface实例.其中,file为字体文件

    val file: File = ....
    Typeface tf=Typeface.createFromFile(file)
    
  • createFromFile(String path):从指定的字体文件创建新的Typeface实例.其中,file为字体文件的存储路径

    val path: String = ....
    Typeface tf=Typeface.createFromFile(path)
    
  • defaultFromStyle(int style):返回默认的Typeface实例,而其字体样式为指定的样式

    Typeface tf=Typeface.defaultFromStyle(Typeface.BOLD)
    

当然,也可以通过Typeface.Builder来创建Typeface实例:

  • 通过字体文件创建Typeface的实例

    Typeface.Builder buidler = new Typeface.Builder("your_font_file.ttf");
    Typeface typeface = builder.build();
    
  • 通过assets资源文件夹下的字体文件来创建Typeface实例

    Typeface.Builder buidler = new Typeface.Builder(getAssets(), "your_font_file.ttc");
    builder.setTtcIndex(2);  // 设置字体集合的索引
    Typeface typeface = builder.build();
    
  • 通过设置来创建Typeface实例

     Typeface.Builder buidler = new Typeface.Builder("your_font_file.ttf");
     // 设置字体的一系列设置
     builder.setFontVariationSettings("'wght' 700, 'slnt' 20, 'ital' 1");
     // 设置字体的Weight
     builder.setWeight(700); 
     // 字体是否为斜体
     builder.setItalic(true);  
     Typeface typeface = builder.build();
    

在XML中,通过android:typeface也可以设置字体,可以这么做:

  • normal
  • monospace
  • sans
  • serif

    <TextView
        android:id="@+id/serif"
        android:text="Hello,World"
        android:textSize="20sp"
        android:typeface="serif" />
    

关于Android 8.0中字体的新特性可参考:

  1. Android 8.0 新特性(一) - 可下载字体
  2. Android 8.0 新特性(二) - XML中的字体
Android字体系列 (二):Typeface完全解析(1) 笔者之前工作是在金融公司可能并不是特别追求技术,而笔者又是喜欢追求技术的人,所以格格不入,只能把目标放在互联网大厂了。也希望大家都去敢于尝试和追逐自己的梦想!BATJ大厂Android高频面试题《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!id高频面试题**[外链图片转存中…(img-mLt2K2wM-1713239197286)][外链图片转存中…(img-K7rLrJd9-1713239197287)] 阅读详情

相关推荐

STM32f103--ADC配置

2.对于规则通道,选中EXTI线路11或TIM8_TRGO作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。注意: 在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。2.在某些双ADC模式中,在完整的ADC1数据寄存器(ADC1_DR)中包含了ADC1和ADC2的规则转换数据。通过设置ADC_CR2寄存器的ADON位可给ADC上电。

weixin_51864506的博客 5313

字体系列 (二):Typeface完全解析

在本系列的上一篇文章中,我们介绍了关于 Android 字体的一些基础知识,还没有看过上一篇文章的朋友,建议先去阅读Android字体系列 (一):Android字体基础,你会发现,我们设置的那三个属性最终都会去构建一个 Typeface 对象,今天我们就好好的来讲讲它注意:本文所展示的系统源码都是基于Android-30 ,并提取核心部分进行分析Typeface 负责 Android 字体的加载以及对上层提供相关字体 API 的调用。

chuyouyinghe的专栏 2595

FPGA时钟架构解密:从SRCC/MRCC到全局时钟树的实战指南

本文深入解析Xilinx 7系列FPGA时钟架构,从SRCC/MRCC引脚特性到全局时钟树设计,详细介绍了BUFG、BUFMR等关键组件的应用场景和优化策略。通过对比SRCC与MRCC的驱动范围及适用场景,提供低抖动时钟布线技巧和时钟域交叉(CDC)设计方法,帮助工程师构建高性能FPGA时钟系统。

weixin_29191081的博客 1483

setTypeface方法:设置字体样式

setTypeface方法:设置字体样式 【功能说明】该方法用于设置画笔的字体样式,可以指定系统自带的字体,也可以使用自定义的字体。该方法是设置画笔显示文本字体的最常用方法。 【基本语法】public Typeface setTypeface ( Typeface typeface) 其中,参数typeface为字体样式,具有如下几种取值。 Typeface.DEFAULT:默认字体。 ...

爬行的菜鸟的博客 8389

从零搭建智能视觉小车:OpenART图像处理+增强现实避坑指南

本文详细指导如何从零搭建智能视觉小车,重点介绍OpenART图像处理与增强现实技术在AprilTag识别中的应用。涵盖硬件选型、环境配置、算法优化及实战调试全流程,特别分享智能汽车竞赛中的避坑技巧和优化方案,帮助开发者构建稳定高效的视觉系统。

yhn456789的博客 1055

即插即用!5分钟为你的SNN模型添加频谱注意力(DCT-SA模块实战)

本文介绍了如何为脉冲神经网络(SNN)快速集成即插即用的DCT-SA频谱注意力模块。该模块利用离散余弦变换(DCT)在频率域自适应加权特征,能有效提升模型对纹理、边缘的感知能力,并在CIFAR10-DVS等数据集上实现分类精度提升与脉冲发放率下降。文章以SpikingJelly框架和ResNet19为例,提供了详细的代码实现、集成步骤及参数调优实战指南。

kotlin6android的博客 608

Android 应用统一字体设置 typeface

字体 字体有三个粒度 1. style 宽、粗、斜 public static final int NORMAL = 0; public static final int BOLD = 1; public static final int ITALIC = 2; public static final int BOLD_ITALIC = 3; 2. typeface 字符构造: MONOSPACE(每个字母一样宽)、SERIF衬线(字母最一笔,加个横线)、 sans-ser

zhjali123的专栏 1658

【知识分享】IBIS 建模指南 03

本文介绍了差分缓冲器的数据提取方法,重点分析了差分系统与单端系统的核心差异。文章详细阐述了差分接收机和驱动器的结构特点、工作原理及建模方法,指出全差分结构具有优异的电源噪声抑制能力。针对IBIS建模规范,作者提出了三维I-V曲面数据提取技术,并介绍了共模/差模电流分离、片上端接处理以及V-T表生成的解决方案。文章还探讨了差分电容(C_diff)的测量方法和数据简化策略,为复杂差分缓冲器的精确建模提供了系统化的技术路径。

一只豌豆象的博客 1281

Android中Paint字体属性的设置

Android中Paint字体属性的设置 (转) 在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: Paint mp = new paint(); mp.setTypeface(Typeface.DEFAULT_BOLD) 常用的字体类型名称还有:   * Typeface.DEFAULT //常规字体类

dongdong163的专栏 786

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

让 IF 更好读:在 ABAP 里尽量使用正向条件的实战指南

摘要:SAP系统开发中,代码可读性与可维护性的关键往往在于条件判断的写法。Clean ABAP风格指南建议尽量采用正向表达的条件判断,如使用has_entries = abap_true而非否定式写法。正向表达能降低理解成本,避免"否定的否定"带来的逻辑混乱,但不应为追求正向而制造空分支。在团队协作中,正向条件更利于代码评审和测试覆盖,建议通过工具检查和智能评审确保规范执行。落地时可关注变量命名正向化、避免空分支、主流程清晰展开等要点,以提升长期维护效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

Android字体设置-----Typeface解析

今天在看一个开源项目的时候,发现了一个可以设置字体样式的类Typeface,配合着酷炫的字体,能让UI增色不少,于是便研究一下并做了记录。 Typeface类简介Typeface中的主要方法和变量都是静态的,类中定义了五种字体以及四种Style样式。五种字体public static final Typeface DEFAULT; //默认的正常字体样式 public stat

oudetu的博客 1999

某Z节验证码

某Z节验证码、captchaBody、滑块、旋转、空间推理

mamenqi_csdn的博客 770

android 设置字体为幼圆_Android字体简介

Android字体简介Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。android.graphic.typeface字体类:本类的常量静态定义,首先为字体类型(typeface)名称TypefaceDEFAULTTypeface DEFAULT_BOLDTypeface MONOSPACETypefaceSANS_SERIFTypeface SE...

weixin_39666931的博客 1003

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android 之 Paint API —— Typeface (字型)

可能默认的三种字体并不能满足你,可能你喜欢MAC的字体——Monaco字体,你想让你APP 里的文字可以用这种字体,首先准备好我们的TTF文件。

leyang0910的博客 822

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 阅读器字体,Android字体设置及Roboto字体使用方法

本文实例讲述了Android字体设置及Roboto字体使用方法。分享给大家供大家参考。具体分析如下:一、自定义字体1.android Typeface使用TTF字体文件设置字体我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。第二步,程序中调用:AssetManager mgr=getAssets();...

weixin_34632251的博客 561

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 字体样式设置,android 全局修改系统字体样式

效果图对比.png工具类/************************************************************* Author: ssc* Date: 2018/1/11* Version: 1.0* Description:字体替换工具类* History:* ******************************************...

weixin_39629947的博客 439

Android的字体相关类Typeface

这里粘贴一个activity的代码,其中展示了Typeface的具体用法。 view plain packagecn.com.chenzheng_java; importandroid.app.Activity; importandroid.graphics.Typeface; importandroid.os.Bundle; ...

管子(zero)的杂乱空间 335

Android为String中部分文字设置TTF字体

/** * 代码描述: * 为String中部分文字设置TTF字体 * 参考资料: * 1 http://blog.csdn.net/lfdfhl/article/details/27372895 * 2 http://blog.csdn.net/lfdfhl/article/details/10898001 */ private void testTypeface()

谷哥的小弟 2389

字体相关基础

最近接到一个需求,大致内容是:全局替换当前项目中的默认字体,并引入 UI 设计师提供的一些新字体。于是对字体做了些研究,把自己的一些心得分享给大家。注意:本文所展示的系统源码都是基于Android-30 ,并提取核心部分进行分析1、Android 系统默认使用的是一款叫做Roboto的字体,这也是 Google 推荐使用的一款字体传送门。它提供了多种字体形式的选择,例如:粗体,斜体等等。

chuyouyinghe的专栏 3579

Android游戏开发之旅五 Path和Typeface

今天我们继续处理上次 Android游戏开发之旅四 Canvas和Paint实例 中提到的Path路径和Typeface字体两个类。对于Android游戏开发或者说2D绘图中来讲Path路径可以用强大这个词来形容。在 Photoshop中我们可能还记得使用钢笔工具绘制路径的方法。Path路径类在位于android.graphics.Path中,Path的构造方法比较简单,如下: [code=...

蔚蓝天空 探索无限 209

Typeface使用

<br />package com.google.android.typefaceTest; <br /><br />import android.widget.TextView; <br />import android.os.Bundle; <br />import android.view.ViewGroup; <br />import android.app.Activity; <br />import android.graphics.Color; <br />import android.wid

unknown712000的专栏 1190

Android 应用ttf字体,一次违反常规的Android大厂面试经历

现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。

2401_84152232的博客 1085

Android—自定义TextView字体!

两种方法: 方法一: 在assets目录下新建目录fonts,然后存放自己的字体库,我这里是微软雅黑weiruanyahei.ttf。 TextView tv; Typeface tf2 = Typeface.createFromAsset(getAssets(),"fonts/weiruanyahei.ttf"); tv.setTypeface(tf2); 方法二:建

weiguishan的专栏 3470
上一篇: 逐一认识PorterDuff.Mode
下一篇: Android Support库——support annotations
行云间
博客等级 码龄12年 438粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值