鸿蒙画布组件:【CanvasPattern】

CanvasPattern

一个Object对象,使用[createPattern]方法创建,通过指定图像和重复方式创建图片填充的模板。

说明:

从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

方法

setTransform

setTransform(transform?: Matrix2D): void

使用Matrix2D对象作为参数、对当前CanvasPattern进行矩阵变换。

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数类型必填默认值描述
transform[Matrix2D]null转换矩阵。

示例:

// xxx.ets
@Entry
@Component
struct CanvasPatternPage {
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
  private matrix: Matrix2D = new Matrix2D()
  private img: ImageBitmap = new ImageBitmap("common/pattern.jpg")
  private pattern : CanvasPattern | null = null

  build() {
      Column() {
        Button("Click to set transform")
          .onClick(() => {
            this.matrix.scaleY = 1
            this.matrix.scaleX = 1
            this.matrix.translateX = 50
            this.matrix.translateY = 200
            if (this.pattern) {
              this.pattern.setTransform(this.matrix)
            }
            this.context.fillRect(0, 0, 480, 720)
          })
          .width("45%")
          .margin("5px")
        Canvas(this.context)
          .width('100%')
          .height('80%')
          .backgroundColor('#FFFFFF')
          .onReady(() => {
            this.pattern = this.context.createPattern(this.img, 'no-repeat')
            this.matrix.scaleY = 0.5
            this.matrix.scaleX = 0.5
            this.matrix.translateX = 50
            this.matrix.translateY = 50
            if (this.pattern) {
              this.context.fillStyle = this.pattern
              this.pattern.setTransform(this.matrix)
            }
            this.context.fillRect(0, 0, 480, 720)
          })
      }
      .width('100%')
      .height('100%')
  }
}

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在echarts柱状图中设置柱条图片,可以使用echarts的bar.series.barWidth属性和bar.series.itemStyle.normal.color属性。具体步骤如下: 1.在option中设置barWidth属性,该属性用于设置柱条的宽度,可以是像素值或百分比。例如,设置柱条宽度为50%: ```javascript option = { ... series: [{ type: 'bar', barWidth: '50%', ... }] ... }; ``` 2.在itemStyle.normal.color属性中设置柱条的背景图片。该属性可以是一个图片的url或者是一个CanvasPattern对象。例如,设置柱条背景图片为一个红色的渐变: ```javascript option = { ... series: [{ type: 'bar', barWidth: '50%', itemStyle: { normal: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [ {offset: 0, color: 'red'}, {offset: 1, color: 'white'} ] ) } }, ... }] ... }; ``` 3.在itemStyle.normal.color属性中设置柱条的背景图片。该属性可以是一个图片的url或者是一个CanvasPattern对象。例如,设置柱条背景图片为一个红色的渐变: ```javascript option = { ... series: [{ type: 'bar', barWidth: '50%', itemStyle: { normal: { color: new echarts.graphic.Pattern( imageDom, // 图片对象 'repeat' // 图片平铺方式 ) } }, ... }] ... }; ``` 其中,imageDom是一个Image对象,可以通过new Image()创建,也可以通过document.createElement('img')创建。需要注意的是,图片必须在加载完成后才能使用,可以通过监听Image对象的load事件来确保图片已经加载完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值