当前位置: 首页 > news >正文

修改Textview中第一个字的字体,避免某些机型人民币¥不显示

 在 Android 中,系统提供了三种常用的字体类型,分别是:

  1. Serif(衬线字体):

    • 这种字体有明显的衬线或笔画末端装饰,通常用于印刷品和书籍,给人一种正式和优雅的感觉。
    • 示例:Typeface.SERIF
  2. Sans Serif(无衬线字体):

    • 这种字体没有衬线,线条更简单、更干净,通常用于数字界面,因其可读性较高而被广泛使用。
    • 示例:Typeface.SANS_SERIF
  3. Monospace(等宽字体):

    • 在这种字体中,每个字符占据相同的水平空间,通常用于代码编辑器、终端窗口和计算机编程,因为它可以让对齐代码变得更加容易。
    • 示例:Typeface.MONOSPACE

默认字体通常是 Sans Serif 。部分设备默认字体无法显示人民币¥的符号(即使使用半角)

此时尝试修改字体,使得符号能够展现

val text = "¥9.0元"
if (Build.MODEL == "xxx"){mTv.text = TypefaceChangeUtils().getTypefaceText(text, 0, 1, Typeface.MONOSPACE)
}else{mTv.text = text
}


import android.graphics.Typeface
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.TextPaint
import android.text.style.MetricAffectingSpanclass TypefaceChangeUtils {fun getTypefaceText(text: CharSequence, start: Int, end: Int, typeface: Typeface) : CharSequence{if (text.isNullOrBlank()){return SpannableStringBuilder("")}else if (start < 0 || end > text.length || start > end){return SpannableStringBuilder("")}// 创建 SpannableStringBuilderval builder = SpannableStringBuilder(text)// 将第一个字符设置为 Monospace 字体// Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 表示当改变文本时,该样式不会向前或向后扩展。builder.setSpan(object : MetricAffectingSpan() {override fun updateDrawState(tp: TextPaint) {tp.typeface = typeface}override fun updateMeasureState(paint: TextPaint) {paint.typeface = typeface}}, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)return builder}}

相关文章:

修改Textview中第一个字的字体,避免某些机型人民币¥不显示

在 Android 中&#xff0c;系统提供了三种常用的字体类型&#xff0c;分别是&#xff1a; Serif&#xff08;衬线字体&#xff09;: 这种字体有明显的衬线或笔画末端装饰&#xff0c;通常用于印刷品和书籍&#xff0c;给人一种正式和优雅的感觉。示例&#xff1a;Typeface.SERI…...

彻底理解quadtree四叉树、Octree八叉树 —— 点云的空间划分的标准做法

1.参考文章&#xff1a; &#xff08;1&#xff09;https://www.zhihu.com/question/25111128 这里面的第一个回答&#xff0c;有一幅图&#xff1a; 只要理解的四叉树的构建&#xff0c;对于八叉树的构建原理类比方法完全一样&#xff1a;对于二维平面内的随机分布的这些点&…...

Python时间序列优化之道滑动与累积窗口的应用技巧

大家好&#xff0c;在时间序列数据处理中&#xff0c;通常会进行滑动窗口计算(rolling)和累积窗口计算(expanding)等操作&#xff0c;以便分析时间序列的变化趋势或累积特征。Pandas提供的rolling和expanding函数提供了简单、高效的实现方式&#xff0c;特别适用于金融、气象、…...

Buffered 和 BuffWrite

Buffered和BuffWrite是Java IO包中的两个类&#xff0c;用于提高IO操作的效率。 Buffered是一个缓冲区类&#xff0c;可以将一个InputStream或者一个Reader包装起来&#xff0c;提供了一定的缓冲区大小&#xff0c;可以一次读取多个字节或字符&#xff0c;减少了读取的次数&am…...

【娱乐项目】基于cnchar库与JavaScript的汉字查询工具

Demo介绍 利用了 cnchar 库来进行汉字相关的信息查询&#xff0c;并展示了汉字的拼音、笔画数、笔画顺序、笔画动画等信息用户输入一个汉字后&#xff0c;点击查询按钮&#xff0c;页面会展示该汉字的拼音、笔画数、笔画顺序&#xff0c;并绘制相应的笔画动画和测试图案 cnchar…...

泷羽sec-蓝队基础之网络七层杀伤链 (下)学习笔记

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

FPGA 开发工程师

目录 一、FPGA 开发工程师的薪资待遇 二、FPGA 开发工程师的工作内容 1. 负责嵌入式 FPGA 方案设计&#xff0c;包括仿真、软件编写和调试等工作。 2. 使用工具软件建立 FPGA 综合工程&#xff0c;编写综合策略和时序约束。 3. 进行 FPGA 设计的优化与程序维护&#xff0c…...

【Leetcode 每日一题】3250. 单调数组对的数目 I

问题背景 给你一个长度为 n n n 的 正 整数数组 n u m s nums nums。 如果两个 非负 整数数组 ( a r r 1 , a r r 2 ) (arr_1, arr_2) (arr1​,arr2​) 满足以下条件&#xff0c;我们称它们是 单调 数组对&#xff1a; 两个数组的长度都是 n n n。 a r r 1 arr_1 arr1​ 是…...

较类中的方法和属性比较

在 Python 中&#xff0c;类中有以下几种常见的方法和属性&#xff0c;它们的作用和用法有所不同。以下是详细比较&#xff1a; --- ### **1. 实例方法** - **定义**&#xff1a;使用 def 定义&#xff0c;第一个参数是 self&#xff0c;表示实例对象本身。 - **作用**&#…...

nVisual可视化资源管理工具

nVisual主要功能 支持自定义层次化的场景结构 与物理世界结构一致&#xff0c;从全国到区域、从室外到室内、从机房到设备。 支持自定义多种空间场景 支持图片、CAD、GIS、3D等多种可视化场景搭建。 丰富的模型库 支持图标、机柜、设备、线缆等多种资源对象创建。 资源可…...

自动类型推导(auto 和 decltype)

​​​​​​一、auto关键字 基本概念 在 C 11 中引入了auto关键字用于自动类型推导。它可以让编译器根据变量的初始化表达式自动推断出变量的类型。这在处理复杂的类型&#xff0c;如迭代器、lambda 表达式的类型等情况时非常有用。 使用示例 例如&#xff0c;在迭代器的使用中…...

新型大语言模型的预训练与后训练范式,谷歌的Gemma 2语言模型

前言&#xff1a;大型语言模型&#xff08;LLMs&#xff09;的发展历程可以说是非常长&#xff0c;从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初&#xff0c;LLM的训练过程只关注预训练&#xff0c;但后来逐步扩展到了包括预训练和后训练在内的完整…...

基于投影寻踪博弈论-云模型的滑坡风险评价

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于投影寻踪博弈论-云模型的滑坡风险评价 基于投影寻踪博弈论-云模型的滑坡风险评价是一个复杂而有趣的主题&#xff0c;涉及到博弈论、风险评估和模糊逻辑等领域的交叉应用。这个方法结合了博弈论中的投影寻踪技术…...

WRF-Chem模式安装、环境配置、原理、调试、运行方法;数据准备及相关参数设置方法

大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果&#xff0c;同时气象因素是控制大气污染的关键自然因素。大气污染问题既是局部、当地的&#xff0c;也是区域的&#xff0c;甚至是全球的。本地的污染物排放除了对当地造成严重影响外&#xff0c;同时还会在…...

Spring中每次访问数据库都要创建SqlSession吗?

一、SqlSession是什么二、源码分析1&#xff09;mybatis获取Mapper流程2&#xff09;Spring创建Mapper接口的代理对象流程3&#xff09;MapperFactoryBean#getObject调用时机4&#xff09;SqlSessionTemplate创建流程5&#xff09;SqlSessionInterceptor拦截逻辑6&#xff09;开…...

力扣刷题TOP101:6.BM7 链表中环的入口结点

目录&#xff1a; 目的 思路 复杂度 记忆秘诀 python代码 目的 {1,2},{3,4,5}, 3 是环入口。 思路 这个任务是找到带环链表的环入口。可以看作是上一题龟兔赛跑&#xff08;Floyd 判圈算法&#xff09;的延续版&#xff1a;乌龟愤愤不平地举报兔子跑得太快&#xff0c;偷偷…...

浅谈telnet和ping

telnet 和 ping 是网络诊断工具&#xff0c;用于测试网络连接性和故障排查&#xff0c;但它们有不同的用途和功能。以下是它们的主要区别&#xff1a; 1. ping 功能描述 用途&#xff1a;ping 命令用于测试主机与目标地址&#xff08;IP或域名&#xff09;之间的连通性。工作…...

P4-3【应用数组进行程序设计 | 第三节】——知识要点:字符数组

知识要点&#xff1a;字符数组 视频&#xff1a; P4-3【应用数组进行程序设计 | 第三节】——知识要点&#xff1a;字符数组 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 本任务要求输入一行字符&#xff0c;统计其中的单词数&#xff0c;单词之间用…...

彻底理解微服务配置中心的作用

常见的配置中心有SpringCloudConfig、Apollo、Nacos等&#xff0c;理解它的作用&#xff0c;无非两点&#xff0c;一是配置中心能做什么&#xff0c;不使用配置中心会出现什么问题。 作用&#xff1a;配置中心是用来集中管理服务的配置&#xff0c;它是用来提高系统配置的维护…...

SpringBoot开发——详细讲解 Spring Boot 项目中的 POM 配置

文章目录 一、POM 文件简介二、单模块项目的 POM 配置1. 创建基本的 Spring Boot 单模块项目2. 重点解析三、多模块项目的 POM 配置1. 多模块项目结构2. 父模块 POM 文件3. 子模块 POM 文件4. 重点解析结语在 Spring Boot 项目中,POM(Project Object Model)文件起着关键作用…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...