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

Android Spannable 使用​注意事项

1、当前示例中间的 "评论",使用SpannableStringBuilder实现,点击评论会有高亮效果加粗,但再点击其它Bar时无法恢复默认样式。

2、因为SpannableString或SpannableStringBuilder中的效果是叠加的,恢复默认样式需要先移除加粗样式 spannable.removeSpan(样式)

3、示例代码

// 样式是叠加的,所以要清除之前的样式                                                                                                  spannableStringBuilder.removeSpan(highlightSpanColor);
spannableStringBuilder.removeSpan(highlightSpanStyle);

private SpannableStringBuilder spannableStringBuilder;// 评论 默认样式// 字体颜色ForegroundColorSpan defaultSpanColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_606266,null));// 字体大小AbsoluteSizeSpan defaultSpanSize = new AbsoluteSizeSpan(DisplayUtils.dp2px(getContext(), 15));// 字体样式StyleSpan defaultSpanStyle = new StyleSpan(Typeface.NORMAL);// 评论 高亮样式// 字体颜色ForegroundColorSpan highlightSpanColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_303133,null));// 字体样式StyleSpan highlightSpanStyle = new StyleSpan(Typeface.BOLD); // 字体加粗// 评论数量 样式// 字体颜色ForegroundColorSpan countColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_909399, null));// 字体大小AbsoluteSizeSpan countSize = new AbsoluteSizeSpan(DisplayUtils.dp2px(getContext(), 12));/*** 不同样式拼接 默认样式*/private void splicingDefaultTextStyle() {spannableStringBuilder = new SpannableStringBuilder(getText());// 评论spannableStringBuilder.removeSpan(highlightSpanColor); // 样式是叠加的,所以要清除之前的样式spannableStringBuilder.removeSpan(highlightSpanStyle);spannableStringBuilder.setSpan(defaultSpanColor, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体颜色spannableStringBuilder.setSpan(defaultSpanSize, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体大小spannableStringBuilder.setSpan(defaultSpanStyle, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体样式// 评论数量spannableStringBuilder.setSpan(countColor, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体颜色spannableStringBuilder.setSpan(countSize, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体大小spannableStringBuilder.setSpan(defaultSpanStyle, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体样式setText(spannableStringBuilder);}/*** 不同样式拼接 高亮样式*/private void splicingHighlightTextStyle() {spannableStringBuilder = new SpannableStringBuilder(getText());// 评论spannableStringBuilder.removeSpan(defaultSpanColor); // 样式是叠加的,所以要清除之前的样式spannableStringBuilder.removeSpan(defaultSpanStyle);spannableStringBuilder.setSpan(highlightSpanColor, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体颜色spannableStringBuilder.setSpan(defaultSpanSize, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体大小spannableStringBuilder.setSpan(highlightSpanStyle, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体样式// 评论数量spannableStringBuilder.setSpan(countColor, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体颜色spannableStringBuilder.setSpan(countSize, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体大小spannableStringBuilder.setSpan(defaultSpanStyle, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字体样式setText(spannableStringBuilder);}

相关文章:

Android Spannable 使用​注意事项

1、当前示例中间的 "评论",使用SpannableStringBuilder实现,点击评论会有高亮效果加粗,但再点击其它Bar时无法恢复默认样式。 2、因为SpannableString或SpannableStringBuilder中的效果是叠加的,恢复默认样式需要先移除…...

Apache访问控制

服务器相关的访问控制 Options指令 Options指令是Apache服务器配置文件中的一个重要指令,它可以用于控制特定目录启用哪些服务器特性。Options指令可以在Apache服务器的核心配置、虚拟主机配置、特定目录配置以及.htaccess文件中使用。 以下是一些常用的服务器特性选项: N…...

二、类与对象(二)

8 this指针 8.1 this指针的引入 我们先来定义一个日期的类Date&#xff1a; #include <iostream> using namespace std; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year <&l…...

Pytorch从零开始实战10

Pytorch从零开始实战——ResNet-50算法实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet-50算法实战环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c…...

设计模式-单例模式实战

目录 一、引言二、适用场景三、代码实战饿汉式单例模式懒汉式单例模式双重检查锁定单例模式静态内部类单例模式 四、实际应用举例Runtime解析 五、结论 一、引言 单例模式是一种创建型设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;且提供全局访问点以访问该实例…...

requests库出现AttributeError问题的修复与替代方法

在使用App Engine时&#xff0c;开发者们通常会面临需要发送爬虫ip请求的情况&#xff0c;而Python中的requests库是一个常用的工具&#xff0c;用于处理爬虫ip请求。然而&#xff0c;在某些情况下&#xff0c;开发者可能会遇到一个名为AttributeError的问题&#xff0c;特别是…...

opencv-2D直方图

cv2.calcHist() 是 OpenCV 中用于计算直方图的函数。它可以计算一维或多维直方图&#xff0c;用于分析图像中像素值的分布。 基本的语法如下&#xff1a; hist cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])参数说明&#xff1a; images:…...

读像火箭科学家一样思考笔记06_初学者之心

1. 专业化是目前流行的趋势 1.1. 通才&#xff08;generalist&#xff09;是指博而不精之人 1.2. 懂得的手艺越多&#xff0c;反而会家徒四壁 1.2.1. 希腊谚语 1.3. 这种态度代价很大&#xff0c;它阻断了不同学科思想的交融 2. 组合游戏 2.1. 某个行业的变革可能始于另一…...

中职组网络安全 Server-Hun-1.img Server-Hun-2.img

一串密码 smbuser用户和密码登录ssh还是失败提示需要密钥&#xff0c;尝试ftp登录成功 发现密钥存放在.ssh/下&#xff0c;在kali上生成一个密钥&#xff0c;通过上传到.ssh/下&#xff0c;将其替换掉 使用kali生成密钥 登录成功,但是无法拿到root目录下的flag 获取root用户权限…...

基于区域划分的GaN HEMT 准物理大信号模型

GaN HEMT器件的大信号等效电路模型分为经验基模型和物理基模型。经验基模型具有较高精度但参数提取困难&#xff0c;特别在GaN HEMT器件工艺不稳定的情况下不易应用。相比之下&#xff0c;物理基模型从器件工作机理出发&#xff0c;参数提取相对方便&#xff0c;且更容易更新和…...

laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)

背景 重构公司后台项目&#xff0c;使用了dcat-admin&#xff0c;但是dcat-admin有些前端功能不能满足需求。因此引入element-ui进行相关界面的优化 具体流程 1.下载element-ui到本地 2.进入如下目录 打开 node_modules\element-ui\lib 复制index.js 打开 node_modules/ele…...

【计算机网络笔记】路由算法之层次路由

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…...

【华为OD机试python】分糖果【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够) 取出一个糖果或放回一个糖果。 小明最少需要多…...

ARM 汇编基础

我们在学习 STM32 的时候几乎没有用到过汇编&#xff0c;可能在学习 UCOS 、 FreeRTOS 等 RTOS 类操作系统移植的时候可能会接触到一点汇编。但是我们在进行嵌入式 Linux 开发的时候是绝 对要掌握基本的 ARM 汇编&#xff0c;因为 Cortex-A 芯片一上电 SP 指针还…...

虹科Pico汽车示波器 | 汽车免拆检修 | 2017款东风本田XR-V车转向助力左右不一致

一、故障现象 一辆2017款东风本田XR-V车&#xff0c;搭载R18ZA发动机&#xff0c;累计行驶里程约为4万km。车主反映&#xff0c;车辆行驶或静止时&#xff0c;向右侧转向比向左侧转向沉重。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上无故障灯点亮&…...

阿里云服务器ECS经济型e实例优惠99元性能怎么样?

阿里云服务器ECS经济型e实例优惠99元性能怎么样&#xff1f;阿里云服务器优惠99元一年&#xff0c;配置为云服务器ECS经济型e实例&#xff0c;2核2G配置、3M固定带宽和40G ESSD Entry系统盘&#xff0c;CPU采用Intel Xeon Platinum架构处理器&#xff0c;2.5 GHz主频&#xff0…...

vue3引入vuex基础

一&#xff1a;前言 使用 vuex 可以方便我们对数据的统一化管理&#xff0c;便于各组件间数据的传递&#xff0c;定义一个全局对象&#xff0c;在多组件之间进行维护更新。因此&#xff0c;vuex 是在项目开发中很重要的一个部分。接下来让我们一起来看看如何使用 vuex 吧&#…...

C++二维数组中的查找

4. 二维数组中的查找 题目链接 牛客网 题目描述 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。 Consider the following matrix: [[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[1…...

【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 2

1、兰兰有一些数字卡片&#xff0c;从 1 到 100 的数字都有&#xff0c;她拿出几张数字卡片按照一定顺序摆放。想一想&#xff0c;第 5 张卡片应该是 A、11 B、12 C、13 D、14 答案&#xff1a;C 2、按照下图的规律&#xff0c;阴影部分应该填 A、 B、 C、 D、 答案&am…...

Qt+sqlite3使用事务提升插入效率

参考&#xff1a; 【精选】SQLite批量插入效率_sqlite 批量插入_PengX_Seek的博客-CSDN博客 (1)不使用事务时&#xff1a; clock_t t_start clock();QSqlQuery query(db);QString sql("insert into test(col1,col2) values(1,2);");for (int i 0; i < 1000; i…...

Degrees of Lewdity中文汉化版:终极完整安装与使用指南

Degrees of Lewdity中文汉化版&#xff1a;终极完整安装与使用指南 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …...

LLMs在生物医学领域的革命性应用与技术解析

1. 项目概述生物医学领域正经历一场由大型语言模型&#xff08;LLMs&#xff09;引发的技术革命。作为一名在生物信息学和临床数据分析交叉领域工作多年的从业者&#xff0c;我亲眼见证了传统分析方法在处理海量基因组数据、电子健康记录&#xff08;EHR&#xff09;时遇到的瓶…...

C++ 成员变量初始化全面指南

在 C++ 编程中,成员变量的初始化是一个基础但至关重要的主题。正确的初始化能够避免未定义行为、提高程序效率,并使代码更易于维护。本文将基于现代 C++(C++11 至 C++17)梳理成员变量的各种初始化方式,并给出最佳实践建议。 一、初始化的基本概念 成员变量的初始化发生在…...

Hugging Face模型微调与机器人控制优化实践

1. 从零开始理解Hugging Face模型微调在机器人控制领域&#xff0c;模型微调已经成为提升预训练模型适应特定任务性能的标准方法。与从头训练相比&#xff0c;微调具有三大核心优势&#xff1a;显著降低数据需求&#xff08;通常只需原始训练数据的1%-10%&#xff09;、大幅缩短…...

从CoPaw_Test项目看协同自动化测试框架的设计与工程实践

1. 项目概述&#xff1a;从“1NY2/CoPaw_Test”看自动化测试的协同进化最近在梳理团队内部的测试资产时&#xff0c;我反复琢磨一个项目&#xff1a;“1NY2/CoPaw_Test”。乍一看&#xff0c;这个命名有点“黑话”的味道&#xff0c;像是某个内部代号。但拆解开来&#xff0c;它…...

利用模型广场与用量数据优化AI应用的技术选型与预算

利用模型广场与用量数据优化AI应用的技术选型与预算 1. 模型选型的技术挑战与解决方案 在构建长期AI应用架构时&#xff0c;技术负责人常面临模型选型的两大核心难题&#xff1a;如何快速获取不同厂商模型的能力边界与定价策略&#xff0c;以及如何将历史项目的实际用量转化为…...

【独家首发】Dify 2026文档解析精度优化内参:基于217万真实业务PDF的误差热力图+12个高危Layout Pattern规避指南

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Dify 2026文档解析精度优化全景概览 Dify 2026 版本在文档解析引擎层面引入了多模态语义对齐机制&#xff0c;显著提升了 PDF、扫描件及混合格式文档中表格、公式与上下文语义的联合识别准确率。核心升…...

对比体验在 Taotoken 上切换不同模型生成代码片段的差异

在 Taotoken 上切换不同模型生成代码片段的体验观察 1. 测试环境与模型选择 本次测试选取了 Taotoken 模型广场中三个擅长代码生成的模型进行对比体验&#xff0c;分别是 claude-sonnet-4-6、gpt-4-turbo-preview 和 deepseek-coder-33b。测试使用相同的 Python 环境与网络条…...

阿里云百炼微调完整实战:从数据到部署

阿里云百炼微调完整实战&#xff1a;从数据到部署 目录 什么是模型微调微调 vs RAG&#xff1a;如何选择环境准备训练数据准备创建微调任务超参数配置详解模型部署LangChain 调用微调模型模型评测常见问题总结 一、什么是模型微调 模型微调&#xff08;Supervised Fine-Tun…...

【限时解禁】Dify私有化部署下的跨域集成密钥库:TLS双向认证+SPI扩展点注入的6重安全加固方案(仅开放72小时)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Dify 低代码平台无缝集成 Dify 是一款面向 AI 应用开发的开源低代码平台&#xff0c;支持可视化编排、模型即服务&#xff08;MaaS&#xff09;对接与 API 快速发布。其核心设计哲学是“零侵入式集成”…...