# [特殊字符] 画画模拟器 — 鸿蒙ArkTS完整技术解析 应用定位创意创作模拟类小应用技术栈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在创意工具模拟场景的开发模式调色板系统颜色数组 选中指示器笔刷粗细控制加减按钮 双端保护颜色名称映射十六进制到中文颜色名画布抽象静态区域模拟画布