1# DrawingRenderingContext 2 3使用DrawingRenderingContext在Canvas组件上进行绘制,绘制对象可以是矩形、文本、图片等。 4 5> **说明:** 6> 7> 从API Version 12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9## 接口 10 11DrawingRenderingContext(unit?: LengthMetricsUnit) 12 13**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 14 15**系统能力:** SystemCapability.ArkUI.ArkUI.Full 16 17**参数:** 18 19| 参数名 | 类型 | 必填 | 说明 | 20| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 21| unit<sup>12+</sup> | [LengthMetricsUnit](../js-apis-arkui-graphics.md#lengthmetricsunit12) | 否 | 用来配置DrawingRenderingContext对象的单位模式,配置后无法更改,配置方法同[CanvasRenderingContext2D](ts-canvasrenderingcontext2d.md#lengthmetricsunit12)。<br>默认值:DEFAULT。 | 22 23## 属性 24 25**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 26 27**系统能力:** SystemCapability.ArkUI.ArkUI.Full 28 29| 名称 | 类型 | 只读 | 可选 | 说明 | 30| ---------- | ------------ | -------------------- | ---------------------------- | ---------------------------- | 31| size | [Size](#size) | 否 | 否 | Context大小的宽和高。<br>默认单位为vp。 | 32| canvas | [Canvas](../../apis-arkgraphics2d/js-apis-graphics-drawing.md#canvas) | 否 | 否 | 绘制模块的Canvas对象,具体描述见绘制模块中的[Canvas](../../apis-arkgraphics2d/js-apis-graphics-drawing.md#canvas)对象。 | 33 34### Size 35 36**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 37 38**系统能力:** SystemCapability.ArkUI.ArkUI.Full 39 40| 名称 | 类型 | 只读 | 可选 | 说明 | 41| ---------- | -------------- | ------ | ---------------- | ------------------------ | 42| width | number | 否 | 否 | DrawingRenderingContext的宽度。 | 43| height | number | 否 | 否 | DrawingRenderingContext的高度。 | 44 45## 方法 46 47### invalidate 48 49invalidate(): void 50 51**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 52 53**系统能力:** SystemCapability.ArkUI.ArkUI.Full 54 55使组件无效,触发组件的重新渲染。 56 57**示例:** 58 59该示例实现了如何使用DrawingRenderingContext中的方法进行绘制。 60 61```ts 62// xxx.ets 63@Entry 64@Component 65struct CanvasExample { 66 private context: DrawingRenderingContext = new DrawingRenderingContext() 67 68 build() { 69 Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 70 Canvas(this.context) 71 .width('100%') 72 .height('100%') 73 .backgroundColor('#ffff00') 74 .onReady(() => { 75 this.context.canvas.drawCircle(200, 200, 100) 76 this.context.invalidate() 77 }) 78 } 79 .width('100%') 80 .height('100%') 81 } 82} 83``` 84  85