Android为TV端助力:(转载)修改TextView字体样式

一、开篇

因为 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,它们也非常的好理解,就是普通|粗体|斜体

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

3.2 android:typeface

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

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

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

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

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

3.3 android:fontFamily

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/xiaoxiaing/p/9056644.html

时间: 2024-11-03 01:17:08

Android为TV端助力:(转载)修改TextView字体样式的相关文章

Android为TV端助力 外挂字幕(设置颜色,大小,位置,微调字幕)

前提摘要:  可以给电影加字幕,目前支持srt和ass格式, 功能摘要:  支持微调字幕,设置大小,颜色,位置 1 .字幕解析类 package com.hhzt.iptv.lvb_x.utils; import android.os.Handler;import android.util.Log; import com.hhzt.iptv.lvb_x.Constant;import com.hhzt.iptv.lvb_x.log.LogUtil;import com.hhzt.iptv.lvb

Android为TV端助力 listview与recyclerview上下联动

首先是主布局fragment里面的xml文件 <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/a

Android为TV端助力 使用shared注意事项

不要存放大的key和value!我就不重复三遍了,会引起界面卡.频繁GC.占用内存等等,好自为之! 毫不相关的配置项就不要丢在一起了!文件越大读取越慢,不知不觉就被猪队友给坑了:蓝后,放进defalut的那个简直就是愚蠢行为! 读取频繁的key和不易变动的key尽量不要放在一起,影响速度.(如果整个文件很小,那么忽略吧,为了这点性能添加维护成本得不偿失) 不要乱edit和apply,尽量批量修改一次提交! 尽量不要存放JSON和HTML,这种场景请直接使用json! 不要指望用这货进行跨进程通信

Android为TV端助力 Linux命令查看包名类名

先运行apk 再输入logcat | grep START 查看当前启动apk的包名和类名 adb shell "pm list packages -f | grep com.yulong.android.launcher3" adb shell "pm list packages -f | grep com."显示包名的apk名称 原文地址:https://www.cnblogs.com/xiaoxiaing/p/8241873.html

Android为TV端助力:自定义view之太阳

先看效果图 package com.hhzt.iptv.lvb_w8.view; import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PixelFormat;import android.graphics.PorterDuff;import android.o

Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题

我们经常会遇到listview或者其他view设置setOnItemSelectedListener监听时,一加载界面,setOnItemSelectedListener监听就会自动执行一遍,导致你第一次移动上去的时候setOnItemSelectedListener监听就不会走的 所以我们采用自定义listview,主动来调用setOnItemSelectedListener监听回调,代码如下 public class MyListView extends ListView { private

【转载】android客服端+eps8266+单片机+路由器之远程控制系统

用android客服端+eps8266+单片机+路由器做了一个远程控制的系统,因为自己是在实验室里,所以把实验室的门,灯做成了远程控制的. 控制距离有多远------只能说很远很远,只要你手机能上网的地方,不对应该是只要能打电话的地方,不对应该是只要是移动网(我用的是移动的卡)覆盖的地方, 这篇只说明怎么样才能实现远程通信(在路由器上怎样设置,wifi模块eps8266怎样设置),最后会贴上单片机,android的源码 请事先参考我的前几篇文章 android之WIFI小车编程详述, andro

Android TextView使用HTML处理字体样式、显示图片等

一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. //创建一个 SpannableString对象 SpannableString msp = new SpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合"); //设置字体(defau

Android之TextView的样式类Span的使用详解

Android中的TextView是个显示文字的的UI类,在现实中的需求中,文字有各式各样的样式,TextView本身没有属性去设置实现,我们可以通过Android提供的 SpannableString类封装.Android提供了很多的Span的类去实现样式,这个样式都是继承自CharacterStyle类. 要想理解Span的具体使用,那肯定得了解SPan类群的构成,研究代码继承结构,深入的了解.理解,才能更好的使用它.我们来统计一下,最前端的可用功能的SPAN有:URLSpan.Clicka