赞
踩
在做颜色拾取器,圆形或者条状颜色效果,进行选择,选择触摸点的颜色数值。
这种效果非常常见和实用,可以对界面背景,文本颜色就行动态变更。
1,渲染设置,画布渲染上下文对象
// 渲染设置-抗锯齿
private settings: RenderingContextSettings =
new RenderingContextSettings(true)
// 颜色条-画布渲染上下文对象
private crcBar: CanvasRenderingContext2D =
new CanvasRenderingContext2D(this.settings)
2,创建渐变颜色的范围
// 创建渐变色的范围
const grad = this.crcBar
.createLinearGradient(0, 0, 0, this.barHeight)
3,设置渐变颜色和比例
// 设置渐变颜色和比例。
grad.addColorStop(0, 'rgb(255, 0, 0)')
grad.addColorStop(1 * 1 / 6, 'rgb(255, 255, 0)')
grad.addColorStop(2 * 1 / 6, 'rgb(0, 255, 0)')
grad.addColorStop(3 * 1 / 6, 'rgb(0, 255, 255)')
grad.addColorStop(4 * 1 / 6, 'rgb(0, 0, 255)')
grad.addColorStop(5 * 1 / 6, 'rgb(255, 0, 255)')
grad.addColorStop(1, 'rgb(255, 0, 0)')
完整代码:
@Entry @Component struct Index { @State message: string = 'Hello World' // 渲染设置-抗锯齿 private settings: RenderingContextSettings = new RenderingContextSettings(true) // 颜色条-画布渲染上下文对象 private crcBar: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) // 颜色条宽度 private barWidth = 0 // 颜色条高度 private barHeight = 0 // 颜色条指示器大小 @State barIndicatorSize: number = 0 build() { Row() { Column(){ this.ColorBar(); } .width(30).height(300) } .alignItems(VerticalAlign.Center) .justifyContent(FlexAlign.Center) .width('100%') .height('100%') } /** * 颜色条 */ @Builder ColorBar() { Canvas(this.crcBar) .onAreaChange((oldValue: Area, newValue: Area) => { // 获取组件的宽高 this.barWidth = parseInt(newValue.width.toString()) this.barHeight = parseInt(newValue.height.toString()) this.barIndicatorSize = this.barWidth / 3 // 创建渐变色的范围 const grad = this.crcBar.createLinearGradient(0, 0, 0, this.barHeight) // 设置渐变颜色和比例。 grad.addColorStop(0, 'rgb(255, 0, 0)') grad.addColorStop(1 * 1 / 6, 'rgb(255, 255, 0)') grad.addColorStop(2 * 1 / 6, 'rgb(0, 255, 0)') grad.addColorStop(3 * 1 / 6, 'rgb(0, 255, 255)') grad.addColorStop(4 * 1 / 6, 'rgb(0, 0, 255)') grad.addColorStop(5 * 1 / 6, 'rgb(255, 0, 255)') grad.addColorStop(1, 'rgb(255, 0, 0)') // 设置渐变色 this.crcBar.fillStyle = grad // 绘制矩形 this.crcBar.fillRect(0, 0, this.barWidth, this.barHeight) }).width('100%') .borderWidth(0.5) } }
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.基本概念
2.构建第一个ArkTS应用
3.……
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……
https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。