当前位置:网站首页>Openharmony - 基于ArkUI(TS)开发颜色选择器
Openharmony - 基于ArkUI(TS)开发颜色选择器
2022-08-02 17:50:00 【51CTO】
作者:梁青松
项目介绍
本项目基于 OpenHarmony的ArkUI框架:TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址: 基于TS扩展的声明式开发范式,因为OpenHarmony的API相对于HarmonyOS的API,功能上比较完善和成熟的,有些新的技术也早早接触到,所以本项目直接使用OpenHarmony SDK开发。
工具版本: DevEco Studio 3.0 Beta4
SDK版本: 3.1.6.6(API Version 8 Release)
项目功能: 常见的颜色选择器,使用颜色条滑动选择主色调,更改颜色面板的颜色,并触摸选择颜色。
效果演示

主要API
画布组件canvas:画布组件,用于自定义绘制图形。
| 方法/属性 | 解释 |
|---|---|
| createLinearGradient() | 创建一个线性渐变色 |
| addColorStop() | 设置渐变颜色和比例 |
| getImageData() | 获取坐标点像素的颜色值 |
| fillRect() | 填充一个矩形 |
| clearRect() | 清空画布 |
| fillStyle | 属性:指定绘制的填充色 |
实现思路
1. 绘制颜色条
使用createLinearGradient()方法创建一个从上至下的线性渐变色。
代码片段
2. 绘制颜色条指示器
使用 Path绘制组件 :绘制两个相对的三角形,作为颜色条指示器。
代码片段

3. 颜色条滑动选择颜色
设置颜色条的触摸事件,根据坐标点,调用getImageData()方法获取触摸坐标点像素的颜色值。并更新颜色条指示器的Y轴位置。
代码片段
4. 绘制颜色面板
使用fillRect()绘制背景矩形,在其之上绘制:从左至右,白色–>透明渐变色,最后绘制:从下至上,黑色–>透明渐变色。
5. 绘制颜色面板指示器
这个很简单,就是组件设置边框和圆角,圆角半径为宽高一半为圆形,大圆套小圆
6. 颜色面板触摸选择颜色
设置颜色条的触摸事件,根据坐标点,调用getImageData()方法获取触摸坐标点像素的颜色值。并更新颜色面板指示器的的XY位置。(代码片段)
7. 外部调用
界面加载成功后,ColorPickerView组件提供一个方法回调。直接在回调中获取颜色变化。来更新数据。
总结
本项目没有什么特别难的点,主要还是熟悉API,多看官方文档,多看一些优秀的项目,只有把原理掌握到自己手上才是王道。
每天进步一点点、需要付出努力亿点点。
项目地址: ArkUI(TS)声明式开发:颜色选择器
更多原创内容请关注: 中软国际 HarmonyOS 技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
边栏推荐
- pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/xxx
- 解决多版本jar包冲突问题
- Several common cross-domain solutions
- golang刷leetcode滑动窗口(9) 颜色分类
- Go编译原理系列6(类型检查)
- Dream weaving prompt information prompt box beautification
- Google Earth Engine APP—— 一个不用写代码可以直接下载相应区域的1984-2021年的GIF遥感影像动态图
- 新特性解读 | MySQL 8.0 GIPK 不可见主键
- golang刷leetcode 经典(6) 实现跳表
- 在线文档Sheet技术解析
猜你喜欢
随机推荐
DevOps之代码检查
织梦自定义表单添加全选和全不选功能按钮
小程序毕设作品之微信体育馆预约小程序毕业设计成品(6)开题答辩PPT
一文看懂推荐系统:概要01:推荐系统的基本概念
搭建属于自己的知识库(Wikijs)
什么是SVN(Subversion)?
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Work (5) Task Book
2021年下半年软件设计师上午真题
【秒杀办法】根据二叉树的先序遍历、中序遍历、后序遍历快速创建二叉树
IDEA相关配置(特别完整)看完此篇就将所有的IDEA的相关配置都配置好了、设置鼠标滚轮修改字体大小、设置鼠标悬浮提示、设置主题、设置窗体及菜单的字体及字体大小、设置编辑区主题、通过插件更换主题
小程序毕设作品之微信体育馆预约小程序毕业设计成品(7)中期检查报告
2022最新版SSM源码分析:一套教程助你深入理解底层原理,提高核心竞争力!
Simulink脚本自动创建Autosar Parameter Port及Mapping
mysql四种隔离级别
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Works Mini Program Graduation Design Finished Work (6) Question Opening Reply PPT
ES: export 的用法
有关代购系统搭建的那点事
灵动微电子发布低功耗 MM32L0130 系列 MCU 产品
究极异常处理逻辑——多层次异常的处理顺序
golang 源码分析(39)hystrix-go









