android字体样式

android 设置字体样式 / 在页面加载完成后动态加载字体文件(例如通过JavaScript)设置完思源字体之后,APP整体行高太高了,需要修改字体,方法如下,也可以直接从网上下。Android Q及Android X 开发环境报错,需要升级。3)通过WebViewClient自定义加载逻辑。在Application初始化时进行设置。2. WebView设置字体样式。1. 全局设置字体样式。2)使用在线字体服务。 阅读详情

版权声明:

本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有。

每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章。

未经允许,不得转载。

序

在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究。

那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我决定将它们拆分一下,分几篇来详细的讲解(可能是五篇)。主要会是一些常用的替换字体的方案,最后还会介绍一些全局替换的方案,当然也会包含最新的 『Fonts in XML』的方案。

期待你持续关注。

一、开篇

因为 Android 字体相关的内容还比较多的。有时候其实我们只需要调整一下属性就可以满足设计师的需求,或者是一个退后的方案(毕竟有发版的时间卡住了),有一些效果可以大概满足需求。

那么本文就先介绍一下再 Android 下原生内置的一些字体的一些基本概念和使用。

需要注意的是,内置的一些字体只对英文有效。

二、Android 的默认字体

Android 系统默认使用的是一款叫做 Robote 的字体。Robote 本身就是 Google 自己的字体格式,Android 和 Chrome 操作系统上,默认都会使用 Robote 字体,并且也是 Google 视觉语言推荐的字体。

想要了解更多关于 Robote 的内容,可以去 Google 的网站上查看。

https://fonts.google.com/specimen/Roboto

正常来说,Robote 就已经提供了多种的选择,例如:粗细、斜体 等等。但是通常它并不能满足我们设计师的需要。

接下来看看当我们想要使用 Android 内置的一些字体的时候,我们需要使用哪些属性。

三、哪些属性可以影响字体

Android 本身已经提供了一些修改字体样式的属性和方法。

当你想要修改字体的时候,你将面对三个属性,它们都有对应的 Java 方法。

  • android:textStyle
  • android:typeface
  • android:fontFamily

下面来分别详细的说明这几个属性。

3.1 android:textStyle

textStyle 主要用于设定一些字体的样式,它是对所有的字体都生效的。也就是说哪怕你替换了字体,依然可以使用 textStyle 来修饰它的样式。textStyle 本身支持的可选项有 normal|bold|italic,它们也非常的好理解,就是普通|粗体|斜体。

/f-textStyle.png

可以看到,字体是不受 textStyle 影响的,这里影响的只有它的样式。

3.2 android:typeface

typeface 可以用于设置一些默认的字体,它可选的属性有 normal|sans|serif|monospace 等。normal 和 sans 的字体其实是一样的,serif 是一个带衬线的字体,而 nonospace 是等宽字体。

光这样说,其实也无法理解它们,直接上效果图比较能说明问题。

/f-typeface.png

可以看到 serif 在默认的字体上,增加了衬线。而 nonospace 限制了每个字符的宽度,让它们达到一个等宽的效果。

等宽其实很好理解,衬线到底是什么意思?这里引用维基百科的一张图,就能很直观的说明问题。

/f-textserif.png

衬线其实就是字体边缘的那一点点小啾啾。

3.3 android:fontFamily

fontFamily 看着像是对 typeface 的一次加强,从它的可选项就能看出来,它更细致的区分了字体的样式。

fontFamily 的可选项还是很多的,这里就不一一列举了。不过需要注意,有一些字体的设置是有版本限制的。

例如:sans-serif-medium 是需要 Android 5.0 的版本才支持的。

下面直接举几个例子看看效果了:

/f-fontfamily.png

需要注意的是,如果同时配置了 typeface 和 fontFamily ,将使用 fontFamily 配置的字体。

而除了 typeface 和 fontFamily 会有冲突之外,它们俩都是可以配合 typeStyle 属性一起使用的,也就是说,这里配置的字体,都是可以再加粗或者加斜体。

四、利用主题修改全局字体

如果你能说服你的设计师,接受系统字体的话,你可以在 Theme 中,去配置你需要的默认字体。

在 application 中,通过 android:theme 来配置一个 App 的主题。一般新创建的项目,都是 @style/AppTheme 。在其中追加关于字体的属性 android:fontFamily,它就可以完成对全局设置一个系统字体。当然你可以对一个单独的 TextView 配置一个特别的字体,都是可以接受的。

/f-basetheme.png

五、使用自定义字体

有时候,Android 系统默认的字体已经无法满足我们的需求了,这个时候我们就会需要使用一些定制的特殊字体。

关于字体,这里推荐两个网站,可以下载到免费的字体供我们使用。

https://fonts.google.com/

https://www.1001freefonts.com/

字体文件,通常都是设计师提供给我们的,一般都是 .ttf(TrueType) 或者 .otf(OpenType) 这两种格式的,比较常用的是 .ttf 格式的。

通常我们会把字体文件放再 assets 目录下,想要加载字体文件,需要使用到 Typeface 这个类,它其中提供了一些 Api ,用于帮助我们来加载一个我们自定义的字体文件。

例如下面的例子,是一个通用的做法。

/f-createfont.png

而 Typeface 并不只是为了加载一些自定义的字体文件,系统内置的字体,也是通过 Typeface 来管理的,可以说它就是 Android 的字体大管家。

好了,今天就到这里。

下篇预告

Typeface 为我们提供了非常便捷的 Api,下篇会从源码到使用,带你一起分析一下 Typeface 的所有细节。

公众号二维码.jpg

点赞或者分享吧~

Android 自定义字体样式 及系统默认字体样式 的设置 Android   能添加文字的控件都可以设置字体样式   关键字是:Typeface   在Java代码中设置或者在xml文件里面设置都可以 Android系统默认给出四种样式的字体 , 分别是 : Nomal    Monospace   Sans   Serif   要想使用自定义的字体样式先要从网上下载一个 .tty 格式的字体文件 然后粘贴到项目里面 , 具体步骤如下 阅读详情

相关推荐

Android中字体设置详解

本文介绍了在Android应用程序中进行字体设置的两种方法:使用系统字体和使用自定义字体。通过添加字体文件到项目中,创建字体资源,并应用字体样式,我们可以在Android应用程序中轻松设置字体。在Android中,字体可以通过两种方式进行设置:系统字体和自定义字体。系统字体是指设备默认的字体,而自定义字体是开发者可以自行选择和应用的字体。如果开发者希望应用程序具有与众不同的外观,或者需要在应用中使用特定的字体,可以使用自定义字体。属性设置为自定义字体资源,我们可以在TextView中应用自定义字体。

CodeShiftZ的博客 1291

Android TextView textStyle 设置字体样式

textStyle 是设置文本字体样式, Android 提供了三个样式 1normal 正常字体 2bold 粗体 3italic 斜体 1 xml 中使用如下 <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" ...

小牧在一直在学习,在前进的道路上大家一起学习,进步。 1万+

Android进阶之路 - 深入浅出字体、字体库

当时组内临时接到一个换字体库的需求,这个需求相对简单,因为手头有其他事情,同时之前也没换过字体库,就交给了同事去做了;现在有时间就好好充实下自己 ( 我写的也未必全对,如有不足可直接提出,相互探讨)

Android、前端、小程序、后端 5325

Android 字体修改,所有的细节都在这里 | 开篇

版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有。 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章。 未经允许,不得转载。 序 在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究。 那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我决定将它们拆分一下,分几...

weixin_33883178的博客 854

android text style设置

该demo作用是设置textview中部分(某些)字体的样式,如:颜色、加粗、背景色,字体大小、下划线、删除线等,使一个textview中可以存在多种样式,欢迎大家交流学习。

MIT6.824-lab2D-2022(日志压缩详细讲解)

从paper中去讲解,并实现关于lab2D的代码。

幸平的博客 6035

Android 设置字体样式

Android 设置字体样式 1.首先下载字体样式 我是在这里下载的字体样式http://www.zitixiazai.org/ 2.然后在下载好的字体样式放到assets项目文件下 接下来就是代码的使用了 直接贴图 <TextView android:layout_width="wrap_content" android:layout_heigh...

only95 5916

【点云语义分割】Ubuntu20.04下RangeNet++环境配置与实战指南

本文详细介绍了在Ubuntu20.04系统下配置和运行RangeNet++点云语义分割模型的完整实战指南。内容涵盖从Cuda、cudnn到TensorRT的深度学习环境搭建,RangeNet++源码编译的详细步骤与常见问题解决,以及如何运行首个分割Demo并可视化结果。最后,还探讨了处理自定义点云数据格式和进行性能调优的进阶技巧,旨在帮助开发者和研究者快速部署并应用这一先进的点云语义分割技术。

rnn9storyteller的博客 516

android spannable 设置字体颜色,安卓文本样式-Spannable的使用

本文转载自 lixin84915的博客 Android文本样式 原文分为上下两部分,本文将上下整理成了一篇文章。在android中,有时候需要对文本进行各种特别的设置,比如颜色、大小、首行缩进,或者是在一段文本中加入图片,甚至是书写一些特殊的公式。如果通过布局文件使用多个控件来实现,一方面会使的使用起来特别的复杂,增加了布局文件维护的难度,另一方面,如果加入了太多的控件,在页面加载时也要耗费更多...

weixin_35798040的博客 1688

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2950

【云原生之Docker实战】使用docker部署Monica个人开源CRM系统

【云原生之Docker实战】使用docker部署Monica个人开源CRM系统

jks212454的博客 2386

android开发EditText的Hint字体默认样式和下载字体样式的适配问题。

紧张了几个月的奋战终于项目到了测试阶段,真是泪奔啊,回想这段时间的地狱生涯 真实汗颜啊~~~~,闲话不多说了,看图说话, 问题,相信这张图片已经展示的很明白了 下来在来看看我的代码 EditText android:id="@+id/account_et" android:layout_width="match_parent" android:layo

帅气大果果 5688

【100%通过率】华为OD机试真题 Python 实现【最多组合直角三角形个数】【2023 Q1 | 100分】

有N条线段,长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次,每个三角形包含三条线段。

MISAYAONE的博客 1万+

android开发字体样式,Android开发中修改程序字体的样式

Android提供三种字体:“Sans”,“serif“和“monospace”。1、在Android XML文件中设置字体可以采用android:typeface,例如android:typeface=”monospace”。在这里例子中我们在Activity中对android:text=”Hello,World!您好”分别进行了四种显示方式,依次为“Sans”,“serif”,“monospa...

weixin_34377666的博客 1288

buildozer

/home/chenyang/new_kivy/.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/Lib

东方佑 16万+

Modbus协议学习第一篇之基础概念

因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。

hzf978742221的博客 880

Android中自定义字体样式

在安卓中可以对一个相同的字体提取一个相同的样式,有利于复用,提高代码质量。例如在values下的style下创建样式如下: &lt;style name="CodeFont" parent="Base.TextAppearance.AppCompat.Medium"&gt; &lt;item name="android:layout_height"&gt;wrap_content&...

陈德山 1165

基于Spring Security 6的OAuth2 系列之二 - 客户端--非代码演示授权码模式

至此,我们就使用浏览器+postman工具演示了通过授权码模式去获取Gitee的用户信息。这过程中,我们只是遵循OAuth2的流程,就能够实现授权方法。那么接下来,我们采用代码方式来实现这个流程。

代码让AI扣 1813

Android 修改特殊字体样式

废话不多说,先上图 1、在assets下新建一个fonts文件,把字体样式 .TTF文件 放入 2、代码部分 @BindView(R.id.tv_tv) TextView tvTv; @BindView(R.id.tv_tv1) TextView tvTv1; ...

qq_37686995的博客 1908

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓全局修改TextView字体样式

将要设置的字体放置在assets/fonts下 在继承Application类中的onCreate方法写以下代码: Typeface typeFaceYaHei = Typeface.createFromAsset(getAssets(), "fonts/youyuan.ttf"); try { Field field = T

qq_23520793的博客 1846

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android 自带的字体库、字体样式

1、设置字体 android:fontFamily=“字体样式” 1、sans-serif-smallcaps (左边只设置字体,右边设置加粗) 2、sans-serif 3、cursive 4、sans-serif-black 5、sans-serif-condensed-light 6、sans-serif-thin 7、serif 8、serif-monospace 9、sans-serif-medium 10、sans-serif-light 11、sans-serif-c

日积月累 1万+

Android 各种默认字体样式设置

In XML android:textStyle normal bold italic android:fontFamily android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFami...

jianjunhuang's blog 6427

Android TextView字体样式设置

在Android的开发中,对字体样式的设置是必不可少的,普通的设置主要包括字体的颜色,大小。这些都太小儿科了,略过。但是当一个TextView要显示多种样式的时候就不一样了。如要求其中的某几个文字加上特殊的颜色,或者字体加大等。别的不多说,先上一个效果图说明下: 下面针对上图效果做对应的代码展示:1.字体加粗//字体加粗 textview.getPaint().setFlags(Paint.F

黄海1991的博客 1万+

如何修改android设计界面的全部字体样式

第一步先在res下创建一个font文件 一定要选择font 创建好之后将从网站下载了的tff字体样式包放入其中 然后在value下的创建一个styles 在其中写入style样式,如下 <resources> <style name="AppTheme.Main" parent="AppTheme.TransStatusBar"> <...

y_l_j的博客 602

安卓设置字符串样式,字符串中部分字体样式

引言: 最近,我遇到一个问题,要显示一行字符串,但是要求部分的样式与整体不同。我以前实现这种操作的方法是用多个TextView分别设置样式。但是,今天我发现对于一些简单的样式设定,其实只用一个TextView就可以了,直接对字符串样式进行设定好了。 解析: 我们先来看一看安卓developer官方文档: 字符串资源 上图,是文档给出支持的html标签和转义符,作用是我们可以利用它们在strin...

tran_sient的博客 2835

android+字体样式包,android 改变全局字体样式(第三方字体包)

android 改变全局字体样式参考:http://stackoverflow.com/questions/2711858/is-it-possible-to-set-font-for-entire-application/16883281#168832811.将要替换的字体包放到assets下2.具体代码://设置新的字体样式public static void setDefaultFont(C...

weixin_42148975的博客 456
上一篇: 转载回调Activity和fragment
下一篇: android MediaRecorder start failed:-38
SATTSA
博客等级 码龄8年 9粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值