# [特殊字符] 画画模拟器 — 鸿蒙ArkTS完整技术解析
📅 2026/7/17 1:12:56
👁️ 次浏览
应用定位创意创作模拟类小应用技术栈HarmonyOS NEXT ArkTS Stage模型源码行数128行核心亮点10色调色板系统、笔刷粗细控制、创作计数、圆形颜色选择器、颜色名称映射一、引言画画模拟器是系列中第一个引入调色板系统的应用。它模拟了绘画创作的核心交互选择颜色→调整笔刷→绘画。技术新概念包括10色调色板10种不同颜色供选择颜色选中指示器当前选中的颜色有边框高亮笔刷粗细调节加粗和减细操作创作计数记录绘画笔数颜色名称映射将颜色值映射为人类可读的名称二、需求分析需求ID功能描述F1画布展示模拟画布区域F2调色板10种颜色可选择F3笔刷调节加粗/减细笔刷F4绘画操作点击画一笔F5计数显示显示已画笔数F6颜色名称显示当前颜色名称三、调色板系统3.1 10色调色板private colors: string[] [#FF5722, #FF9800, #FFEB3B, #4CAF50, #2196F3, #3F51B5, #9C27B0, #E91E63, #000000, #FFFFFF]; private colorNames: string[] [红, 橙, 黄, 绿, 蓝, 靛, 紫, 粉, 黑, 白];颜色选择覆盖了彩虹色 黑白满足基本配色需求。3.2 颜色选择器实现Row() { ForEach(this.colors, (color: string, idx: number) { Column() { Text( ) .width(24) .height(24) .backgroundColor(color) .border({ width: this.currentColorIndex idx ? 3 : 1, color: this.currentColorIndex idx ? #333 : #CCC }) .borderRadius(12) .margin({ right: 3 }) .onClick(() { this.currentColorIndex idx; this.brushColor color; this.message 选择了 this.colorNames[idx] 色 ; }) } }) }选中指示器选中的颜色边框加粗1→3px并变深#CCC→#333。这是一种常见的UI选中反馈。四、笔刷粗细控制4.1 加减按钮Button(➕ 加粗笔) .onClick(() { this.brushSize Math.min(30, this.brushSize 2); this.message 笔刷加粗到 this.brushSize px; }) Button(➖ 减细笔) .onClick(() { this.brushSize Math.max(2, this.brushSize - 2); this.message 笔刷减细到 this.brushSize px; })范围限制2-30px之间。Math.min和Math.max双端保护。4.2 状态显示Text(当前: this.colorNames[this.currentColorIndex] | 粗细: this.brushSize px) .fontSize(13) .fontColor(#999)实时显示当前配色方案的所有参数。五、画布抽象Column() { Text(画布) .fontSize(36) Text(✏️ 已画 this.drawCount 笔) .fontSize(14) .fontColor(#999) } .width(220) .height(180) .backgroundColor(#FAFAFA) .border({ width: 2, color: #DDD }) .borderRadius(8) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center)由于ArkTS Canvas支持有限这里用静态区域抽象画布——画一笔只增加计数而不真正绘制。六、扩展思路6.1 Canvas绘制真正的画布需要使用 Canvas APICanvas(this.context) .width(100%) .height(100%) .onTouch((event) { if (event.type TouchType.Move) { this.context.moveTo(lastX, lastY); this.context.lineTo(event.x, event.y); this.context.stroke(); } })6.2 撤销功能State history: CanvasImage[] []; undo() { let prev this.history.pop(); if (prev) { this.context.drawImage(prev, 0, 0); } }6.3 保存作品saveArt() { let image this.context.toDataURL(); // 保存到本地 }七、总结画画模拟器展示了ArkTS在创意工具模拟场景的开发模式调色板系统颜色数组 选中指示器笔刷粗细控制加减按钮 双端保护颜色名称映射十六进制到中文颜色名画布抽象静态区域模拟画布
1. NAPI开发基础与DAYU200开发板环境搭建NAPI(Native API)作为OpenHarmony系统中连接JavaScript与C/C的桥梁,其重要性不言而喻。在DAYU200开发板上进行NAPI开发,首先需要明确几个关键点:开发环境要求OpenHarmony 3.2 B…
📅 2026/7/17 1:12:56
在Java里头, 发送HTTP GET请求主要存在几种方式: 运用.、运用 、运用 库, 又或者运用Java 11当中引入的.http.。这些方式全都能够达成在Java里创建和发送HTTP GET请求的要求, 然而它们于易用性、功能性以及可维护性方面存有差别。在这些方法里头, .http. 于Java 11的时候被引进…
📅 2026/7/17 1:12:56
不少初次开展 Qi 认证的企业,不清楚完整链路,难以合理规划项目时间表。完整 Qi 认证分为前置准备、实验室测试、WPC 审核备案三个阶段。【前置准备】1. 企业注册成为 WPC 会员(申请认证必备前提,区分不同层级会员)&…
📅 2026/7/17 1:12:56
1. 为什么无影云电脑是部署 OpenClaw 的“天选之地”? 很多人看到“2026无影云电脑部署OpenClaw”这个标题,第一反应是:不就是装个软件吗?本地Windows或Mac不行?非得上云?这背后其实藏着一个被大量新手忽略…
📅 2026/7/17 1:57:07
1. 项目概述在C的日常开发中,std::vector绝对是使用频率最高的容器,没有之一。它简单、高效,提供了动态数组的能力。但正是这个看似简单的容器,却隐藏着一个让无数新手甚至老手都栽过跟头的“陷阱”——迭代器失效。你可能正信心满…
📅 2026/7/17 1:57:07
1. 项目概述:为什么要亲手“造”一个string?在C的世界里,std::string就像空气和水一样,无处不在。从处理用户输入到解析配置文件,再到网络通信中的数据包组装,几乎每个C项目都离不开它。标准库提供的std::s…
📅 2026/7/17 1:57:07
1. Windows系统自带工具完全指南Windows操作系统自带的实用工具一直被大多数用户忽视。实际上,从文件管理到系统维护,从网络诊断到安全防护,Windows已经内置了大量功能强大的原生工具,完全可以替代许多第三方收费软件。1.1 为什么…
📅 2026/7/17 1:57:07
1. 项目概述:为什么C多线程是程序员的必修课?如果你写过C,并且程序里有过那种“卡住”等待某个操作(比如读文件、等网络)的经历,那你大概率已经感受到了单线程的局限。多线程编程,简单说就是让你…
📅 2026/7/17 1:57:07
做跨境广告的你,是不是经常遇到这种情况:预算烧得飞快,但转化率低得让人想砸键盘?尤其是当你在纠结该用CCA还是GEO模式时,脑子里全是问号。别急,今天我就把这一行当里的遮羞布扯下来,聊聊这俩到底有啥不同,以及怎么帮你省下真金白银。先说结论,很多小白甚至半吊子运营…
📅 2026/7/17 1:56:34
1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…
📅 2026/7/17 0:00:32
1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
📅 2026/7/17 0:00:32
在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。
对工程应用和在自己的图片上进行测试来…
📅 2026/7/17 0:00:32
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/15 22:51:06
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/16 21:45:29
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/15 22:51:03