• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (Lattice)
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## createImageLattice<sup>12+</sup>
29
30static createImageLattice(xDivs: Array\<number>, yDivs: Array\<number>, fXCount: number, fYCount: number, fBounds?: common2D.Rect | null, fRectTypes?: Array\<RectType> | null, fColors?: Array\<common2D.Color> | null): Lattice
31
32创建矩形网格对象。将图像划分为矩形网格,同时处于偶数列和偶数行上的网格是固定的,如果目标网格足够大,则这些固定网格以其原始大小进行绘制。如果目标网格太小,无法容纳这些固定网格,则所有固定网格都会按比例缩小以适应目标网格。其余网格将进行缩放,来适应剩余的空间。
33
34**系统能力:** SystemCapability.Graphics.Drawing
35
36**参数:**
37
38| 参数名       | 类型                                                                | 必填 | 说明                                                                               |
39| ------------ | ------------------------------------------------------------------ | ---- | --------------------------------------------------------------------------------- |
40| xDivs        | Array\<number>                                                     | 是   | 用于划分图像的X坐标值数组。该参数为整数。                                             |
41| yDivs        | Array\<number>                                                     | 是   | 用于划分图像的Y坐标值数组。该参数为整数。                                             |
42| fXCount      | number                                                             | 是   | X坐标值数组的大小。基于功能和性能的考虑,取值范围为[0, 5]。                            |
43| fYCount      | number                                                             | 是   | Y坐标值数组的大小。基于功能和性能的考虑,取值范围为[0, 5]。                            |
44| fBounds      | [common2D.Rect](js-apis-graphics-common2D.md#rect) \| null           | 否   | 可选,要绘制的原始边界矩形,矩形参数须为整数,默认为原始图像矩形大小(若矩形参数为小数,会直接舍弃小数部分,转为整数)。 |
45| fRectTypes   | Array\<[RectType](arkts-apis-graphics-drawing-e.md#recttype12)> \| null                              | 否   | 可选,填充网格类型的数组,默认为空。如果设置,大小必须为(fXCount + 1) * (fYCount + 1)。 |
46| fColors      | Array\<[common2D.Color](js-apis-graphics-common2D.md#color)> \| null | 否   | 可选,填充网格的颜色数组,默认为空。如果设置,大小必须为(fXCount + 1) * (fYCount + 1)。 |
47
48**返回值:**
49
50| 类型                       | 说明                                |
51| ------------------------- | ----------------------------------- |
52| [Lattice](arkts-apis-graphics-drawing-Lattice.md)     | 返回创建的矩形网格对象。              |
53
54**错误码:**
55
56以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
57
58| 错误码ID | 错误信息 |
59| ------- | --------------------------------------------|
60| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed. |
61
62**示例:**
63
64```ts
65import { RenderNode } from '@kit.ArkUI';
66import { drawing } from '@kit.ArkGraphics2D';
67
68class DrawingRenderNode extends RenderNode {
69  draw(context : DrawContext) {
70    let xDivs : Array<number> = [1, 2, 4];
71    let yDivs : Array<number> = [1, 2, 4];
72    let lattice = drawing.Lattice.createImageLattice(xDivs, yDivs, 3, 3); // 划分(3+1)*(3+1)的网格,下图蓝色填充矩形为固定网格
73  }
74}
75```
76![zh-ch_Lattice.png](figures/zh-ch_Lattice.png)
77
78## createImageLattice<sup>18+</sup>
79
80static createImageLattice(xDivs: Array\<number>, yDivs: Array\<number>, fXCount: number, fYCount: number, fBounds?: common2D.Rect | null, fRectTypes?: Array\<RectType> | null, fColors?: Array\<number> | null): Lattice
81
82创建矩形网格对象。将图像划分为矩形网格,同时处于偶数列和偶数行上的网格是固定的,如果目标网格足够大,则这些固定网格以其原始大小进行绘制。如果目标网格太小,无法容纳这些固定网格,则所有固定网格都会按比例缩小以适应目标网格。其余网格将进行缩放,来适应剩余的空间。
83
84**系统能力:** SystemCapability.Graphics.Drawing
85
86**参数:**
87
88| 参数名       | 类型                                                                | 必填 | 说明                                                                               |
89| ------------ | ------------------------------------------------------------------ | ---- | --------------------------------------------------------------------------------- |
90| xDivs        | Array\<number>                                                     | 是   | 用于划分图像的X坐标值数组。该参数为整数。                                             |
91| yDivs        | Array\<number>                                                     | 是   | 用于划分图像的Y坐标值数组。该参数为整数。                                             |
92| fXCount      | number                                                             | 是   | X坐标值数组的大小。基于功能和性能的考虑,取值范围为[0, 5]。                            |
93| fYCount      | number                                                             | 是   | Y坐标值数组的大小。基于功能和性能的考虑,取值范围为[0, 5]。                            |
94| fBounds      | [common2D.Rect](js-apis-graphics-common2D.md#rect) \| null           | 否   | 可选,要绘制的原始边界矩形,矩形参数须为整数,默认为原始图像矩形大小(若矩形参数为小数,会直接舍弃小数部分,转为整数)。 |
95| fRectTypes   | Array\<[RectType](arkts-apis-graphics-drawing-e.md#recttype12)> \| null                              | 否   | 可选,填充网格类型的数组,默认为空。如果设置,大小必须为(fXCount + 1) * (fYCount + 1)。 |
96| fColors      | Array\<number> \| null | 否   | 可选,填充网格的颜色数组,颜色用16进制ARGB格式的32位无符号整数表示,参数默认为空。如果设置,大小必须为(fXCount + 1) * (fYCount + 1)。 |
97
98**返回值:**
99
100| 类型                       | 说明                                |
101| ------------------------- | ----------------------------------- |
102| [Lattice](arkts-apis-graphics-drawing-Lattice.md)     | 返回创建的矩形网格对象。              |
103
104**错误码:**
105
106以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
107
108| 错误码ID | 错误信息 |
109| ------- | --------------------------------------------|
110| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed. |
111
112**示例:**
113
114```ts
115import { RenderNode } from '@kit.ArkUI';
116import { drawing } from '@kit.ArkGraphics2D';
117
118class DrawingRenderNode extends RenderNode {
119  draw(context : DrawContext) {
120    let xDivs : Array<number> = [1, 2, 4];
121    let yDivs : Array<number> = [1, 2, 4];
122    let colorArray :Array<number>=[0xffffffff,0x44444444,0x99999999,0xffffffff,0x44444444,0x99999999,0xffffffff,0x44444444,0x99999999,0x44444444,0x99999999,0xffffffff,0x44444444,0x99999999,0xffffffff,0x44444444];
123    let lattice = drawing.Lattice.createImageLattice(xDivs, yDivs, 3, 3,null,null,colorArray);
124  }
125}
126```