【共创季稿事节】颜色选择器:ArkTS 中 Slider 三通道调色的实现
📅 2026/7/6 1:47:43
👁️ 次浏览
一、引言颜色选择器Color Picker是设计师和开发者几乎每天都会用到的工具。无论是在网页开发中选取主题色还是在设计工具中调配渐变色一个直观、易用的颜色选取器都是不可或缺的。本文将讲解如何在 ArkTS 中利用三个 Slider 组件实现 RGB 三通道的实时调色并自动生成对应的 HEX 色值。二、色彩模型基础2.1 RGB 色彩模型RGB 是最基础、最通用的色彩模型它通过红Red、绿Green、蓝Blue三个通道的不同强度来混合出几乎所有的颜色。每个通道的取值范围为 0-2558 位色深总共可以表示 256³ ≈ 1670 万种颜色。颜色 R G B HEX纯红 255 0 0 #FF0000纯绿 0 255 0 #00FF00纯蓝 0 0 255 #0000FF白色 255 255 255 #FFFFFF黑色 0 0 0 #0000002.2 HEX 色值的计算HEX 是 RGB 的十六进制表示法将三个通道的十进制值分别转为两位十六进制数并拼接updateHex() {let r Math.round(this.red).toString(16).padStart(2, ‘0’);let g Math.round(this.green).toString(16).padStart(2, ‘0’);let b Math.round(this.blue).toString(16).padStart(2, ‘0’);this.hex ‘#’ r.toUpperCase() g.toUpperCase() b.toUpperCase();}padStart(2, ‘0’) 确保当通道值小于 16 时如 15 → ‘f’补零为 ‘0f’。toUpperCase() 将十六进制字母转为大写符合常见 HEX 色值的格式规范。三、RGB 三通道调色实现3.1 Slider 组件配置三个 Slider 分别控制 R、G、B 通道取值范围 0-255Slider({ value: this.red, min: 0, max: 255, step: 1 }).blockColor(‘#E74C3C’) // R 通道滑块为红色.trackColor(‘#E0E0E0’).selectedColor(‘#E74C3C’).onChange((v: number) {this.red Math.round(v);this.updateHex();})3.2 颜色预览Text(‘’).width(200).height(200).borderRadius(20).backgroundColor(this.rgbColor()).shadow({ radius: 10, color: ‘#30000000’, offsetY: 5 })this.rgbColor() 方法返回 CSS 格式的 RGB 字符串rgbColor(): string {returnrgb(${Math.round(this.red)},${Math.round(this.green)},${Math.round(this.blue)});}3.3 预设颜色提供常见颜色的快速选取按钮ForEach([‘#E74C3C’, ‘#E67E22’, ‘#F1C40F’, ‘#2ECC71’,‘#3498DB’, ‘#9B59B6’, ‘#1ABC9C’, ‘#34495E’], (c: string) {Text(‘’).width(32).height(32).borderRadius(16).backgroundColor©.onClick(() {this.hex c;this.red parseInt(c.slice(1, 3), 16);this.green parseInt(c.slice(3, 5), 16);this.blue parseInt(c.slice(5, 7), 16);})})点击预设颜色时同时更新 HEX 值和三个通道值。四、命名冲突问题在开发过程中我们遇到了一个典型的 ArkTS 命名冲突问题。最初我们将组件命名为 ColorPicker但 ArkTS 的 ArkUI 框架中已有一个内置的 ColorPicker 组件导致编译错误The struct ‘ColorPicker’ cannot have the same name as the built-in component ‘ColorPicker’.解决方案将自定义结构体重命名为 ColorPick与内置组件名称区分开。样式文件名为 ColorPicker.ets按文件路径路由内部结构体名为 ColorPick。五、总结颜色选择器展示了 ArkTS 中 Slider 组件的另一种用途——不是用于数值调节而是用于色彩调节。通过三个 Slider 分别控制 RGB 通道用户可以直观地看到颜色随滑动的实时变化。核心收获RGB 模型与 HEX 色值的转换Slider 的非数值交互用途命名冲突的识别与解决Builder 的灵活运用
基于51/STM32单片机智能油烟机 排烟换气 温度采集控制系统 成品21(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_
版本一 烟雾采集风扇3档调节照明自动控制手动控制lcd1602液晶显示当前烟雾浓度和风扇档位以及模式第五个按键可以一键开启/关闭…
📅 2026/7/6 1:47:43
房地产数字沙盘是通过三维建模、UE5实时渲染与多点触控交互技术,将建筑设计方案转化为可操作、可体验的数字化展示工具。在楼盘营销、异地获客、案场转化等场景中,数字沙盘正从“可选项”升级为“必选项”。对于全国性布局的房企而言,服务商的…
📅 2026/7/6 1:47:43
从 0 开始学 AI:第 4 课,CPU、GPU、显存和算力基础1. 这一课要解决什么问题?2. AI 为什么需要硬件算力?3. CPU 是什么?4. GPU 是什么?5. CPU 和 GPU 的核心区别6. 为什么 AI 特别适合用 GPU?7. …
📅 2026/7/6 1:47:43
超参数调优进阶:Optuna/Bayesian/Early Stopping
1. 调优方法对比
超参数调优方法:
├── 网格搜索(Grid Search):穷举所有组合,慢但全面
├── 随机搜索(Random Search)ÿ…
📅 2026/7/6 2:57:50
专业解决方案:Bifrost三星固件下载器 - 跨平台高效管理工具实战指南 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost
三星设备固件管理是技术爱好者和…
📅 2026/7/6 2:57:50
1 问题描述
1.1 简要描述
从微信等渠道下载或接收的 Word 文档(.docx、.xlsx、.pptx),在 Mac 上打开时默认为只读模式(受保护的视图),必须手动点击"启用编辑"才能修改。无论是:
Finde…
📅 2026/7/6 2:57:50
🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个名为“Codex”的项目。需要明确的是,这里讨论的“Codex”并非特指OpenAI的Codex模型,而是泛指…
📅 2026/7/6 2:57:50
Display Driver Uninstaller技术解析:显卡驱动深度清理方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninsta…
📅 2026/7/6 2:57:50
你去看看我写的Smalltalk best practice patterns吧。然后Fred George就看了这本书并且完全按照书上的要求去做,5年后当他再给Kent看自己的代码时,Kent说很漂亮的代码。考虑到Fred比Kent要老,可以看出Fred是非常虚心的,听了Kent的…
📅 2026/7/6 2:55:50
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray
你是否厌倦了Windows任务栏上密密麻麻的图标&…
📅 2026/7/6 0:01:19
1. 项目概述:一次对React Server Components核心安全机制的深度剖析 最近在安全研究圈里,CVE-2025-55182这个编号被频繁提及,它直指React生态中一个相对较新的概念——React Server Components(RSC)。作为一个长期关注…
📅 2026/7/6 0:01:20
星露谷物语终极MOD指南:5个步骤打造智能自动化农场 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods
你是否厌倦了在星露谷物语中重复收割、加工、存储的繁琐操作?梦…
📅 2026/7/6 0:01:20
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/5 0:01:51
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/5 0:01:51
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/5 0:01:51
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/5 6:01:04
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/5 6:01:04
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/5 23:45:08