Android设置文字颜色渐变
项目中用到了很多文字颜色渐变的设计,因此做一下记录。
核心代码如下:
/*** 统一文字渐变色设置* @param colors 渐变色字符串数组* @param positions 渐变色位置数组,可为空* @param start 渐变起始点,可为空* @param end 渐变结束点,可为空* @param tile 渐变模式,默认为CLAMP*/
fun TextView.setGradientColor(colors: Array<String>,positions: FloatArray? = null,start: PointF? = null,end: PointF? = null,tile: Shader.TileMode = Shader.TileMode.CLAMP
) {post {val intColors = colors.map {Color.parseColor(it)}.toIntArray()val gradient = LinearGradient(start?.x ?: paddingStart.toFloat(),start?.y ?: 0F,end?.x ?: measuredWidth.toFloat() - paddingEnd,end?.y ?: 0F,intColors,positions,tile)paint.shader = gradientinvalidate()}
}
对应的xml中TextView如下:
<androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/tvHello"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World"android:textColor="#FFC791"android:textSize="16dp"android:textStyle="bold"/>
如何使用:
tvHello.setGradientColor(arrayOf("#FFECC6", "#FFC791"))
特别注意:必须设置android:textColor属性颜色值,否则不会产生预期效果
感谢大家的支持,如有错误请指正,如需转载请标明原文出处!
相关文章:
Android设置文字颜色渐变
项目中用到了很多文字颜色渐变的设计,因此做一下记录。 核心代码如下: /*** 统一文字渐变色设置* param colors 渐变色字符串数组* param positions 渐变色位置数组,可为空* param start 渐变起始点,可为空* param end 渐变结束…...
java基础面试题(二)
java后端面试题大全 3.JVM3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?3.2 java类的加载流程3.3 java内存溢出什么时候会发生以及解决方法 3.JVM 3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置? 堆 对象实例、String常量池、基…...
php爬虫实现把目标页面变成自己的网站页面
最近又被烦的不行,琐事不断,要是比起懒来一个人比一个人懒,但是懒要转换成动力啊,能让自己真正的偷懒,而不是浪费时间。每天还是需要不断的学习的,才能更好的提高效率,把之前做的简单小功能爬虫…...
[c语言c++]手写你自己的swap交换函数
函数传参有按值传递,指针传递,引用传递,分别看一下三种情况下的交换函数如何书写,应该使用哪种最方便。 当书写一个交换两个值的 swap 函数时,我们可以分别使用按值传参、指针传参和引用传参的方式来实现。下面是示例和…...
技术类知识汇总(二)
在自己日常学习javaweb的过程中,做的一些笔记和总结,汇总如下: Springboot项目的静态资源(html,css,js等前端资源)默认存放目录为:classpath:/static classpath:/public classpath:/resources"三层架…...
简单好用!日常写给 ChatGPT 的几个提示词技巧
ChatGPT 很强,但是有时候又显得很蠢,下面是使用 GPT4 的一个实例: 技巧一:三重冒号 """ 引用内容使用三重冒号 """,让 ChatGPT 清晰引用的内容: 技巧二:角色设定…...
pytorch分布式训练
1 基本概念 rank:进程号,在多进程上下文中,我们通常假定rank 0是第一个进程或者主进程,其它进程分别具有1,2,3不同rank号,这样总共具有4个进程 node:物理节点,可以是一个…...
【PyTorch】(三)模型的创建、参数初始化、保存和加载
文章目录 1. 模型的创建1.1. 创建方法1.1.1. 通过使用模型组件1.1.2. 通过继承nn.Module类 1.2. 模型组件1.2.1. 网络层1.2.2. 函数包1.2.3. 容器 1.3. 将模型转移到GPU 2. 模型参数初始化3. 模型的保存与加载3.1. 只保存参数3.2. 保存模型和参数 1. 模型的创建 1.1. 创建方法…...
高效开发之:判断复杂list中的对象属性是否包含某个值
技术使用:使用了Java 8引入的Stream API以及Optional类。这些特性用于简化集合的处理和减少空指针异常。 List<ResourceInfoDto> authData chatBase.getData();String baseName dto.getBaseName();Optional<ResourceInfoDto> authWithResourceCode a…...
MacOS + Android Studio 通过 USB 数据线真机调试
环境:Apple M1 MacOS Sonoma 14.1.1 软件:Android Studio Giraffe | 2022.3.1 Patch 3 设备:小米10 Android 13 一、创建测试项目 安卓 HelloWorld 项目: 安卓 HelloWorld 项目 二、数据线连接手机 1. 手机开启开发者模式 参考࿱…...
部署jekins遇到的问题
jdk问题 我用的jdk版本是21的结果版本太新了,启动jekins服务的时候总是报错最后在jekins的安装目录下面的jekinsErr.log查看日志发现是jdk问题最后换了一个17版本的就解决了。 unity和jekins jekins和Git源码管理 jekins和Git联动使用 我想让jekins每次打包的时…...
SQLY优化
insert优化 1.批量插入 手动事务提交 主键顺序插入,主键顺序插入性能高于乱序插入 2.大批量插入数据 如果一次性需要插入大批量数据,使用Insert语句插入性能较低,此时可以使用MYSQL数据库提供的load指令进行插入 主键优化 主键设计原则 …...
设计模式——行为型模式(一)
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行…...
Rust语言入门教程(六) - 字符串类型
在Rust中, 字符串类型其实是一个比较复杂的话题。在Rust的标准库中,至少都提供了6种字符串类型,我们平常使用的最多的是其中的两种。这两种类型互相之间也有所关联: str: 字符串切片String 字符串 其中, 字…...
【MATLAB源码-第92期】基于simulink的QPSK调制解调仿真,采用相干解调对比原始信号和解调信号。
操作环境: MATLAB 2022a 1、算法描述 QPSK,有时也称作四位元PSK、四相位PSK、4-PSK,在坐标图上看是圆上四个对称的点。通过四个相位,QPSK可以编码2位元符号。图中采用格雷码来达到最小位元错误率(BER) —…...
关于C语言控制浮点数输出精度问题
众所周知 C语言在控制一个浮点数输出精度的时候是在%和f之间加上一个.(想要控制的精度) 如:printf("%.2f", num); 问,试问:(你就是我的御主吗?)如果输出的精度是根据输入的数字变化的怎么办&am…...
【Linux 静态IP配置】
静态IP配置 1.NAT模式设置2.设置静态ip3.重启网络4.查看ip 1.NAT模式设置 首先设置虚拟机中NAT模式的选项,打开VMware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数 注意: VMware Network Adapter VMnet8保证是启用状态 …...
【Linux 操作系统配置 SFTP】
Linux 操作系统配置 SFTP sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管…...
信贷专员简历模板
这份简历内容,以信贷专员招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 信贷专员简历在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位:信贷专员 …...
Python自动化测试面试经典题
相信大家经历过许多面试都会有这样的感受:好不容易通过了 2 -3轮技术面试,但是薪资不够理想;要么被面试的测试专家虐的不要不要的。但每一次的面试也能让自己认识到不足之处,这样才有利于后续拿到理想的offer。 牛鹭学院的学子对…...
国产AI Agent爆发:从“龙虾风暴”看企业级Agent工具选型与实战指南
摘要: 作为一名在企业架构领域摸爬滚打15年的老兵,我见证了从SOA到微服务,再到如今AI原生架构的数次演进。2026年3月底,国内AI圈掀起的“龙虾风暴”标志着Agent工具正式进入爆发期。然而,对于IT负责人和CIO而言&#x…...
vLLM显存优化实战:如何用enable-chunked-prefill和max_num_batched_tokens解决CUDA out of memory
vLLM显存优化实战:突破CUDA内存瓶颈的深度调优指南 当你在8张RTX 3090上部署大语言模型时,突然弹出的"Cuda out of memory"错误就像一场噩梦。这不是简单的内存不足警告,而是高性能计算环境中常见的显存管理挑战。本文将带你深入vL…...
深入理解请求限流算法的实现细节
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
别再让MCU直连MOSFET了!用N531搭建你的第一个栅极驱动电路(附PCB文件)
从零构建高效MOSFET驱动电路:N531实战指南 在嵌入式开发中,直接使用MCU的GPIO驱动功率MOSFET是一个常见但危险的做法。我曾亲眼见过一个智能家居项目因为这种设计导致整个控制板烧毁——MOSFET开关缓慢产生的高温不仅损坏了功率器件,还反向影…...
Oak安全最佳实践:10个防范常见Web攻击的终极指南
Oak安全最佳实践:10个防范常见Web攻击的终极指南 【免费下载链接】oak A middleware framework for handling HTTP with Deno 🐿️ 🦕 项目地址: https://gitcode.com/gh_mirrors/oa/oak Oak是一个基于Deno的现代化中间件框架…...
Windows 11上保姆级教程:用Ollama本地部署DeepSeek-R1 8B,再也不用担心API费用和网络延迟了
Windows 11本地AI部署实战:OllamaDeepSeek-R1 8B全流程指南 在AI技术快速发展的今天,越来越多的开发者和中小企业开始关注如何在本地环境中部署和运行大型语言模型。对于预算有限但对数据隐私有高要求的团队来说,本地部署不仅能显著降低成本&…...
STM32智能展柜控制系统设计与实现
1. 项目概述在博物馆文物保存领域,环境参数的精确控制一直是个技术难点。我最近完成了一个基于STM32的智能展柜控制系统项目,这套方案能够实时监测并调节展柜内的温湿度及光照强度,为珍贵文物提供最佳保存环境。相比传统的人工监测方式&#…...
改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束,以最小化最大完工...
改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束,以最小化最大完工时间为目标函数,使用ipox、ux两种交叉方式,改进G-L-R初始化机制提升初始种群质量,使用变邻域搜索机制对空间进行局部搜索 更换关键工厂中…...
工程实践100道 · 第一篇:模型上线与部署25道
工程实践100道 第一篇:模型上线与部署25道本篇覆盖机器学习模型从训练到上线的全流程,详解模型部署、在线服务、效果监控等面试常考点。1. 模型上线的基本流程是什么? 白话答案: 模型上线流程: 模型训练:离…...
K8s混沌工程叛变:随机宕机暴露的职场PUA
在云原生架构席卷软件世界的今天,Kubernetes(K8s)以其强大的编排能力,成为分布式系统稳定运行的基石。随之兴起的混沌工程,则扮演着“压力测试师”的角色,通过主动注入Pod宕机、网络延迟等故障,…...
