HarmonyOS应用开发:鸿蒙通用属性,渐变颜色的实现! 原创 精华
看到前几天鸿蒙官网更新了 新的api CanvasGradient ,渐变颜色的组件,看了一下 实现,发现通过样式的方式可以直接实现颜色的渐变效果,但是如果直接使用CanvasGradient会有一些问题,这里给大家实现一下 样式的渐变效果和 CanvasGradient对象的介绍。
可能有人会问这个渐变样式可以干啥,其实我们常用的颜色选择器就能通过这种渐变来实现,通过渐变设置集中主要颜色的排序,通过旋转某一个坐标点来实现颜色的选择,更新对应的布局或者文字,或者识别出来颜色值。
每天学习一点点。
场景:
通过颜色渐变实现多个颜色的渐变共存,实现颜色选择器的思路。
下面我们开始今天的文章,还是老规矩,通过如下几点来说:
1,实现思路
2,代码解析
3,实现效果
3,总结
一,实现思路
添加canvas组件,静态设置线性渐变 (linear-gradient)和重复线性渐变 (repeating-linear-gradient)两种渐变属性 设置颜色渐变(为啥说是静态设置 因为个人验证目前只能设置css样式中,拿出来不生效),通过CanvasGradient动态设置渐变颜色。
二,代码解析
子组件:
1,hml文件
功能点:
1,设置默认渐变自上到下
2,设置幅度夹角渐变
3,设置重复渐变
4,设置带有透明度的渐变-为实现选择一种颜色后的透明度
2,css文件
1,渐变颜色都设置7中最主要的颜色
2,重复颜色设置两种颜色
3,js文件
设置颜色选择器的逻辑:
1,添加一个颜色选择条,设置默认7中颜色。
2,给颜色旋转条添加事件,获取坐标值 createImageData
3,计算坐标点的颜色值,设置 属性createLinearGradient的 gradient.addColorStop(0,'#00ffff');
4,选择后默认设置两个,一个是当前选择颜色,另一个是 黑色透明的渐变
5,获取颜色值对其他界面渲染
三,实现效果
四,总结
1,静态设置线性渐变 (linear-gradient)和重复线性渐变 (repeating-linear-gradient)两种渐变属性 可以实现简单的颜色渲染效果。
2,实现颜色选择器需要createImageData通过坐标获取颜色值,设置 属性gradient.addColorStop(0,'#00ffff'); 来渲染选择颜色的渐变效果
原创不易,有用就关注一下。要是帮到了你 就给个点赞吧,多谢支持。
觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**
有问题请留言或者私信。
早上8点前就开始学习鸿蒙,羡慕楼主作息。
这种渐变主要应用方向还是调色盘吧
直接使用居然会有问题,感谢排坑
时间有限,早上做得快。
是的,过来人。
加油。