1# Class (RoundRect) 2 3<!--Kit: ArkGraphics 2D--> 4<!--Subsystem: Graphics--> 5<!--Owner: @hangmengxin--> 6<!--Designer: @wangyanglan--> 7<!--Tester: @nobuggers--> 8<!--Adviser: @ge-yafang--> 9 10> **说明:** 11> 12> - 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 13> 14> - 本Class首批接口从API version 12开始支持。 15> 16> - 本模块使用屏幕物理像素单位px。 17> 18> - 本模块为单线程模型策略,需要调用方自行管理线程安全和上下文状态的切换。 19 20圆角矩形对象。 21 22## 导入模块 23 24```ts 25import { drawing } from '@kit.ArkGraphics2D'; 26``` 27 28## constructor<sup>20+</sup> 29 30constructor(roundRect: RoundRect) 31 32拷贝一个圆角矩形。 33 34**系统能力:** SystemCapability.Graphics.Drawing 35 36**参数:** 37 38| 参数名 | 类型 | 必填 | 说明 | 39| ----------- | ---------------------------------------- | ---- | ------------------- | 40| roundRect | [RoundRect](arkts-apis-graphics-drawing-RoundRect.md) | 是 | 用于拷贝的圆角矩形。 | 41 42**示例:** 43 44```ts 45import { common2D, drawing } from '@kit.ArkGraphics2D'; 46 47let rect: common2D.Rect = {left : 100, top : 100, right : 500, bottom : 300}; 48let roundRect = new drawing.RoundRect(rect, 50, 50); 49let roundRect2 = new drawing.RoundRect(roundRect); 50``` 51 52## constructor<sup>12+</sup> 53 54constructor(rect: common2D.Rect, xRadii: number, yRadii: number) 55 56构造一个圆角矩形对象,当且仅当xRadii和yRadii均大于0时,圆角生效,否则只会构造一个矩形。 57 58**系统能力:** SystemCapability.Graphics.Drawing 59 60**参数:** 61 62| 参数名 | 类型 | 必填 | 说明 | 63| ----------- | ---------------------------------------- | ---- | ------------------- | 64| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 需要创建的圆角矩形区域。 | 65| xRadii | number | 是 | X轴上的圆角半径,该参数为浮点数,小于等于0时无效。 | 66| yRadii | number | 是 | Y轴上的圆角半径,该参数为浮点数,小于等于0时无效。 | 67 68**错误码:** 69 70以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 71 72| 错误码ID | 错误信息 | 73| ------- | --------------------------------------------| 74| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types. | 75 76**示例:** 77 78```ts 79import { common2D, drawing } from '@kit.ArkGraphics2D'; 80 81let rect: common2D.Rect = {left : 100, top : 100, right : 500, bottom : 300}; 82let roundRect = new drawing.RoundRect(rect, 50, 50); 83``` 84## setCorner<sup>12+</sup> 85 86setCorner(pos: CornerPos, x: number, y: number): void 87 88设置圆角矩形中指定圆角位置的圆角半径。 89 90**系统能力:** SystemCapability.Graphics.Drawing 91 92**参数:** 93 94| 参数名 | 类型 | 必填 | 说明 | 95| -------- | -------------------------------------------- | ---- | ------------------------------- | 96| pos | [CornerPos](arkts-apis-graphics-drawing-e.md#cornerpos12) | 是 | 圆角位置。 | 97| x | number | 是 | x轴方向的圆角半径,该参数为浮点数,小于等于0时无效。 | 98| y | number | 是 | y轴方向的圆角半径,该参数为浮点数,小于等于0时无效。 | 99 100**错误码:** 101 102以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 103 104| 错误码ID | 错误信息 | 105| ------- | --------------------------------------------| 106| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed. | 107 108**示例:** 109 110```ts 111import { drawing } from '@kit.ArkGraphics2D'; 112 113let roundRect : drawing.RoundRect = new drawing.RoundRect({left: 0, top: 0, right: 300, bottom: 300}, 50, 50); 114roundRect.setCorner(drawing.CornerPos.TOP_LEFT_POS, 150, 150); 115``` 116 117## getCorner<sup>12+</sup> 118 119getCorner(pos: CornerPos): common2D.Point 120 121获取圆角矩形中指定圆角位置的圆角半径。 122 123**系统能力:** SystemCapability.Graphics.Drawing 124 125**参数:** 126 127| 参数名 | 类型 | 必填 | 说明 | 128| -------- | -------------------------------------------- | ---- | ------------------------------- | 129| pos | [CornerPos](arkts-apis-graphics-drawing-e.md#cornerpos12) | 是 | 圆角位置。 | 130 131**返回值:** 132 133| 类型 | 说明 | 134| --------------------- | -------------- | 135| [common2D.Point](js-apis-graphics-common2D.md#point12) | 返回一个点,其横坐标表示圆角x轴方向上的半径,纵坐标表示y轴方向上的半径。 | 136 137**错误码:** 138 139以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 140 141| 错误码ID | 错误信息 | 142| ------- | --------------------------------------------| 143| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed. | 144 145**示例:** 146 147```ts 148import { drawing } from '@kit.ArkGraphics2D'; 149 150let roundRect : drawing.RoundRect = new drawing.RoundRect({left: 0, top: 0, right: 300, bottom: 300}, 50, 50); 151let cornerRadius = roundRect.getCorner(drawing.CornerPos.BOTTOM_LEFT_POS); 152console.info("getCorner---"+cornerRadius.x) 153console.info("getCorner---"+cornerRadius.y) 154``` 155 156## offset<sup>12+</sup> 157 158offset(dx: number, dy: number): void 159 160将圆角矩形分别沿x轴方向和y轴方向平移dx,dy。 161 162**系统能力:** SystemCapability.Graphics.Drawing 163 164**参数:** 165 166| 参数名 | 类型 | 必填 | 说明 | 167| -------- | -------------------------------------------- | ---- | ------------------------------- | 168| dx | number | 是 | 表示x轴方向上的偏移量。正数表示向x轴正方向平移,负数表示向x轴负方向平移,该参数为浮点数。 | 169| dy | number | 是 | 表示y轴方向上的偏移量。正数表示向y轴正方向平移,负数表示向y轴负方向平移,该参数为浮点数。 | 170 171**错误码:** 172 173以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 174 175| 错误码ID | 错误信息 | 176| ------- | --------------------------------------------| 177| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types. | 178 179**示例:** 180 181```ts 182import { drawing } from '@kit.ArkGraphics2D'; 183 184let roundRect : drawing.RoundRect = new drawing.RoundRect({left: 0, top: 0, right: 300, bottom: 300}, 50, 50); 185roundRect.offset(100, 100); 186```