鸿蒙画布组件:【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%')
  }
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 23:26:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 23:26:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 23:26:03       45 阅读
  4. Python语言-面向对象

    2024-07-19 23:26:03       55 阅读

热门阅读

  1. python单继承和多继承实例讲解

    2024-07-19 23:26:03       15 阅读
  2. Linux的常用命令大全

    2024-07-19 23:26:03       15 阅读
  3. 监测vuex中state的变化

    2024-07-19 23:26:03       16 阅读
  4. 算法面试题五

    2024-07-19 23:26:03       19 阅读
  5. c++一句话求前缀和,不用循环

    2024-07-19 23:26:03       16 阅读
  6. 双指针算法入门 —— 常见例题

    2024-07-19 23:26:03       12 阅读