当前位置: 首页 > 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)文件起着关键作用…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...