Android 使用第三方字体

先看下图

一.全局替换方式

1.新建assets引入资源

 2.  自定义application,将第三方的字体,替换当前系统默认字体

class App : Application() {override fun onCreate() {super.onCreate()initTypeface()}private fun initTypeface() {val typefaceBysong = Typeface.createFromAsset(assets, "fonts/bysong.ttf")val monospace = Typeface::class.java.getDeclaredField("MONOSPACE")monospace.isAccessible = truemonospace.set(null, typefaceBysong)}
}

 3.定义app的style(主要是<item name="android:typeface">monospace</item>)

<resources xmlns:tools="http://schemas.android.com/tools"><!-- Base application theme. --><style name="Theme.Study" parent="Theme.MaterialComponents.DayNight.DarkActionBar"><!-- Primary brand color. --><item name="colorPrimary">@color/purple_500</item><item name="colorPrimaryVariant">@color/purple_700</item><item name="colorOnPrimary">@color/white</item><!-- Secondary brand color. --><item name="colorSecondary">@color/teal_200</item><item name="colorSecondaryVariant">@color/teal_700</item><item name="colorOnSecondary">@color/black</item><!-- Status bar color. --><item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item><!-- Customize your theme here. --></style><style name="AppTheme.NoActionBar" parent="Theme.Study"><item name="windowActionBar">false</item><item name="windowNoTitle">true</item><item name="android:typeface">monospace</item></style>
</resources>

4.设置在manifests文件中设置application,替换theme="@style/AppTheme.NoActionBar"

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.ming.widgets"><applicationandroid:name=".App"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme.NoActionBar"><activityandroid:name=".FontActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

 这样全部都替换成第三方字体,对于字体因为太大而导致的问题,可以将字体的扩展名改成zip或者jpg就会解决。

二.单个TextView替换

1.对每个TextView调用 setTypeface(@Nullable Typeface tf)方法

class FontActivity : AppCompatActivity() {private lateinit var mBinding: ActivityFontBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)mBinding = ActivityFontBinding.inflate(LayoutInflater.from(this))setContentView(mBinding.root)//得到AssetManagerval typefaceBysong = Typeface.createFromAsset(assets, "fonts/bysong.ttf")//设置字体mBinding.textViewThird.typeface = typefaceBysong}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".FontActivity"><TextViewandroid:id="@+id/textViewThird"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"android:text="三方字体文字"/><TextViewandroid:id="@+id/textViewNormal"android:layout_marginTop="100dp"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"android:text="普通文字"/>
</androidx.constraintlayout.widget.ConstraintLayout>

  但是这样未免有些麻烦,需要对每个TextView调用 setTypeface(@Nullable Typeface tf)方法,于是还可以这样

2在res资源文件夹下新建font文件夹,将三方字体资源文件导入

 对TextView添加android:fontFamily="@font/fzkatong"标签即可

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".FontActivity"><TextViewandroid:id="@+id/textViewResFont"android:layout_marginTop="200dp"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"android:fontFamily="@font/fzkatong"android:text="引用Res/Font下资源的文字"/>
</androidx.constraintlayout.widget.ConstraintLayout>

三.官方指南文档

字体资源  |  Android 开发者  |  Android Developers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352770.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Android 字体大小(fontScale)不随系统设置变化

需求 App字体大小不变 如果用户将系统字体大小设置的非常大&#xff0c;可能导致APP的文字大小显示异常。 目标效果是&#xff0c;APP内字体大小不随系统设置的 字体大小 变化。 原始效果 系统的字体大小设置为 超大 时&#xff1a;&#xff08;字体大小 可变&#xff09; 目…

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

1、设置字体 android:fontFamily“字体样式” 1、sans-serif-smallcaps &#xff08;左边只设置字体&#xff0c;右边设置加粗&#xff09; 2、sans-serif 3、cursive 4、sans-serif-black 5、sans-serif-condensed-light 6、sans-serif-thin 7、serif 8、serif-monospa…

android屏幕大小字体大小,Android字体大小自适应不同分辨率的解决办法

Android字体大小自适应不同分辨率的解决办法 今天有人问我&#xff0c;Android系统不同分辨率&#xff0c;不同大小的手机&#xff0c;字体大小怎么去适应呢&#xff1f;其实字体的适应和图片的适应是一个道理的。 一、原理如下&#xff1a; 假设需要适应320x240&#xff0c;48…

Android切换字体

有时候需要根据UI需求切换项目字体&#xff0c;步骤如下&#xff1a; 准备字体文件&#xff0c;示例使用ttf文件&#xff0c;新建font文件夹&#xff1a; 将ttf文件放到res/font目录下 设置全局字体&#xff0c;系统主题添加 <item name"android:fontFamily">f…

Android 字体颜色设置及颜色表

1、在android中经常看到设置的颜色为八位的十六进制的颜色值&#xff0c;例如&#xff1a; public static final class color { public static final int lightblue0x7f040000; } 或者在Java中tx.setTextColor(0xffff00f); 说明&#xff1a; 0xffff00ff是int类型的数据&#…

IOS字体与安卓字体渲染不一致

IOS字体与安卓字体渲染不一致 问题: 前端开发中经常会遇到各种各样的兼容问题,记录一次IOS字体与安卓字体渲染不一致,当字体包名字中包含’-Bold’时 错误代码如下: font-family: DINAlternate-Bold ; font-weight: bold;IOS: 不会渲染’font-weight: bold’只是加载了’…

android中文字体加粗,android TextView设置中文字体加粗实现方法

android TextView设置中文字体加粗实现方法 英文设置加粗可以在xml里面设置: 复制代码 代码如下: android:textStyle="bold" 英文还可以直接在String文件里面直接这样填写: 复制代码 代码如下: Plain, bold, italic, bold-italic b代码加粗,i代表倾斜 中文设置加粗就…

android常用字体代码,Android TextView设置字体风格多种组合

在开发应用过程中经常会遇到显示一些不同的字体风格的信息犹如默认的LockScreen上面的时间和充电信息。对于类似的情况,可能第一反应就是用不同的多个TextView来实现,对于每个TextView设置不同的字体风格以满足需求。 这里推荐的做法是使用Android.text.*;和android.text.sty…

Android 字体粗细的设置

转载:https://juejin.im/post/597d88f75188257fc2177c36 如何实现 “中间这几个字要加粗&#xff0c;但是不要太粗&#xff0c;比较纤细的那种粗” &#xff1f; 分享一个最近做业务遇到的简单又蛮有意思的的文本显示处理过程。具体就是有这么一段文字&#xff0c;类似“转盘…

Android字体引入

2个方案&#xff1a;①xml引入、②java代码引入。 效果图&#xff1a; 方法①&#xff1a;xml引入&#xff1a; 1.创建font目录&#xff1a; 2.把字体库复制到font目录下&#xff1a; 3.xml中&#xff0c;使用fontFamily引入字体库&#xff1a; <TextViewandroid:text"…

Android字体样式修改

效果图 准备字体 Download Alibaba Sans比如阿里巴巴普惠体&#xff0c;也可以其他网站找一些对应的资源。 字体使用 将字体文件放到res/font文件夹下&#xff0c;如果没有font文件&#xff0c;则新建一个。 添加到font路径下的字体文件&#xff0c;明明不能是汉字&#xff…

玩转安卓字体

起因 最近公司有个需求&#xff0c;需要做 Widget &#xff0c;内心其实是拒绝的&#xff0c;因为这个玩意儿特别难用&#xff0c;而且限制重重&#xff0c;但没办法&#xff0c;也不能不做&#xff0c;那就开始吧。 本来以为挺简单的东西&#xff0c;一个列表展示数据&#…

iPadPro看电影之MKV转MP4视频格式教程

拥有了苹果iPadPro如果不看高清电影那就有点可惜了&#xff0c;虽说在线看电影也不错&#xff0c;但就目前这种网络环境&#xff0c;还别说很多时候没有Wifi网络&#xff0c;即使能上网很多时候网速也无法支持流畅的在线播放普清电影&#xff0c;更不用说高清电影了。怎么办&am…

如何向ipad上传视频(使用iTunes)

1.先对iTunes做个简单介绍&#xff1a; iTunes是一款媒体播放器的应用程序&#xff0c;2001年1月10日由苹果电脑在旧金山的Macworld Expo推出&#xff0c;用来播放以及管理数字音乐和与视频文件。iTunes能连接到iTunes Store&#xff0c;以便下载购买的数字音乐、音乐影片、电视…

Mac电脑使用:通过Mac电脑导出iPhone手机里面的视频(不是iTunes导出视频的方法)

分享一个通过Mac电脑导出iPhone手机里面的视频的方法,这个方法和通过iTunes导出手机视频的方法是并行关系。 方法很简单,就是通过Mac电脑系统里面自带的图像捕捉工具来操作。 具体步骤如下所示: 1.把iPhone手机连接到你的Mac电脑上面,然后打开Launchpad; 2.在Launchpad中找…

苹果手机iphone如何播放电脑中的视频

用手机看视频已经是人们习以为常的事情了&#xff0c;随着手机容量的增大&#xff0c;很多人选择把视频下载到手机本地观看&#xff0c;但是有些视频我们存放在电脑上&#xff0c;想用手机看怎么办呢&#xff1f;很多人选择把视频用数据线传输到手机上&#xff0c;但是这样略显…

如何在IPad上优雅地看移动硬盘中的视频

这里用到的是SMB协议&#xff0c;Win10自带 文章目录 如何开启SMB如何共享文件如何在IPad上访问共享文件如何在IPad上看视频呢&#xff1f; 如何开启SMB 众所周知&#xff0c;windows的SMB默认是关闭的&#xff0c;下文首先介绍如何开启首先&#xff0c;进入控制面板-程序&…

ipad 共享 计算机,ipad与电脑怎么共享视频

有了Ipad以后&#xff0c;天天就想着怎么玩Ipad&#xff0c;那么大家知道ipad与电脑怎么共享视频吗?下面学习啦小编就为大家带来了ipad与电脑共享视频实现在iPad上看电脑里的电影的方法。 ipad与电脑共享视频方法 1.首先需要在电脑上先打开 “家庭共享”功能。 在PC上选择 文件…

平板可以看html文档吗,iPad如何看电脑里的视频 如何使用Ipad看电脑里的电影

电脑上的视频怎么在iPad上观看&#xff1f; 如何在ipad播放电脑中的视频 首先&#xff0c;看你的视频格式。如果是mp4&#xff0c;就可以直接放入ipad自带浏览器或者通过itunes直接传。其他格式的需要下载第三方播放器&#xff0c;目前使用较多的支持高清播放的有Oplayer&#…

windows10 共享视频到 Ipad

windows10 共享视频到 Ipad(iphone) 写作初衷前期准备教程开始共享文件夹设置控制面板设置Windows Media Player 设置共享内容图片分享 后来的话 写作初衷 受限于Ipad系统的封闭性&#xff0c;向其传输数据需要下载超级难用的Itunes&#xff0c;使用过程非常糟心。而使用Ipad下…