java 编程字体_Java 是否可以为整个应用程序设置自定义字体?
小编典典
是的,反思。这有效(基于此答案):
(注意:由于缺乏对自定义字体的支持,因此这是一种解决方法,因此,如果你要更改此情况,请在此处加注星号以投票赞成android问题)。注意:请勿在该问题上留下“我也”评论,当你这样做时,所有盯着它的人都会收到一封电子邮件。因此,请对其“加星标”。
import java.lang.reflect.Field;
import android.content.Context;
import android.graphics.Typeface;
public final class FontsOverride {
public static void setDefaultFont(Context context,
String staticTypefaceFieldName, String fontAssetName) {
final Typeface regular = Typeface.createFromAsset(context.getAssets(),
fontAssetName);
replaceFont(staticTypefaceFieldName, regular);
}
protected static void replaceFont(String staticTypefaceFieldName,
final Typeface newTypeface) {
try {
final Field staticField = Typeface.class
.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
然后,你需要重载一些默认字体,例如在应用程序类中:
public final class Application extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
FontsOverride.setDefaultFont(this, "DEFAULT", "MyFontAsset.ttf");
FontsOverride.setDefaultFont(this, "MONOSPACE", "MyFontAsset2.ttf");
FontsOverride.setDefaultFont(this, "SERIF", "MyFontAsset3.ttf");
FontsOverride.setDefaultFont(this, "SANS_SERIF", "MyFontAsset4.ttf");
}
}
或者当然,如果你使用的是相同的字体文件,则可以对此进行改进以仅将其加载一次。
但是,我倾向于只覆盖一个,比如说”MONOSPACE”,然后设置一种样式来强制该字体应用程序范围广泛:
monospace
API 21 Android 5.0
我已经对评论中的报告进行了调查,认为该报告无效,并且似乎与主题不兼容android:Theme.Material.Light。
如果该主题对你不重要,请使用较旧的主题,例如:
monospace
2020-02-27
java 编程字体_Java 是否可以为整个应用程序设置自定义字体?相关推荐
- Android 为应用或Textview设置自定义字体,主流字体包
文章目录 前言 一.assets是什么? 二.APP全局字体 2.1.引入库 2.2.在Application中初始化calligraphy 2.3.让指定的Activity配置自定义字体 2.3.1 ...
- 微信小程序可以加服务器上的字体,微信小程序中自定义字体
微信小程序支持自定义字体开放出来也有段时间,这边整理下使用自定义字体中,容易忽略的一些问题,和简便的全局自定义方式.如果是同时加载两种字体包,先下载下来的会被后下载下来的字体包给覆盖. 官网接口文档 ...
- 番外:设置自定义字体
番外:css中设置自定义字体(引入字体) 1.常规下(你自己有字体包的情况下) 假设你的文件夹这个样子: font文件夹下有两个字体文件,此时你想使用zkkh.ttf(站酷酷黑字体) 代码如下: &l ...
- java 编程工具_Java开发工具可以促进编程!
java 编程工具 Java开发人员通常尝试找到快速有效地编写高质量Java代码的方法,以使他们的编程工作变得更轻松. 由于情况发生了变化,因此出现了越来越多的工具. 因此,下面列出了大多数开发人员已 ...
- java编程测试题_Java编程测试可帮助您评估求职者
java编程测试题 Sometimes back one of my good friend asked me to assess few job candidates for Java progra ...
- java编程源代码_java经典编程300例源代码下载
java经典编程300例源代码是针对java编程的编程源代码.以基础知识为框架,介绍了各部分知识所对应的常用开发实例,并进行了透彻解代码解析和知识扩展4部分,每一部分都进行了细致的说明.__java经 ...
- Java编程思考_java编程的总结与思考
java编程的总结与思考 可以用BlockingQueue来实现生产者-消费者并发模型(下一节中有介绍),当然在Java 5以前也可以通过wait和notify来实现线程调度,比较一下两种代码就知道基 ...
- java编程 问题_Java编程常见问题汇总
Java编程常见问题汇总 在我们写Java程序的过程中,其实里面有一些细节大家可能没怎么注意,虽然一般没有什么大问题,但俗话说的好,差之毫厘失之千里.所以我们一定要注意这些小细节.那在我们日常的编程中 ...
- java tcp 编程实例_Java实现基于TCP的通讯程序实例解析
Java中的TCP通信程序 TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端 两端通信时的步骤: 1.服务端程序,需要事先启动,等待客户端连接 2.客户端主动连接服务器端,才 ...
最新文章
- java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
- 双作用叶片泵图形符号_液压气动图形符号及识别
- Ubuntu 16.04通过Unity Tweak Tool实现点击图标最小化
- Mysql 内置函数
- php文件开放下载安全,php实现文件安全下载
- 写给大数据开发初学者的话 | 附教程
- 【小技巧】【牛客网】【JAVA】在线输入输出练习
- 编写HTML提高编写代码的效率,优化innerHTML操作(提高代码执行效率)
- android游戏模式,注重游戏体验 Android 12提供原生游戏模式
- 详解MySQL执行事务的语法和流程
- php 获得焦点,jquery中blur()失去焦点与focus() 获取焦点事件
- 【学习笔记】RecyclerView的使用
- linux ras目录,Linux下配置站点-FTP-RSA私钥-公钥
- Java多线程——同步容器类
- Java语言程序设计(基础篇)
- 林子雨_大数据技术原理与应用课后习题
- 社交电商 社群电商 源码下载
- biostarhandboo(三)|本体论和功能分析
- 保健文汇杂志保健文汇杂志社保健文汇编辑部2022年第36期目录
- C语言实现一维信号小波阙值去噪
热门文章
- mac通过android打电话,应用短评:用Mac打电话的意义在哪?
- 桌面环境选择_Fedora 30 正式版发布:引入 Deepin 桌面环境(DDE)
- 2012高等学校计算机等级考试试卷二级 vb.net程序设计,2012上海市高等校计算机等级考试试卷二级VBNET程序设计.docx...
- flock用法详解 linux_linux下C语言中的flock函数使用方法 .
- python购物车_python购物车功能
- springboot controller 分页查询_Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
- cmd mysql 报错_Mysql报错问题汇总
- python随机图片api_抓取随机图片
- mysql union
- python eval