Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
26914477
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
26914477
编写于
5月 10, 2023
作者:
O
openharmony_ci
提交者:
Gitee
5月 10, 2023
浏览文件
操作
浏览文件
下载
差异文件
!18062 【轻量级 PR】:add zh-cn/application-dev/reference/apis/js-apis-arkui-componentSnapshot.md.
Merge pull request !18062 from 周沺耳/N/A
上级
4cd2b05c
58b960be
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
244 addition
and
0 deletion
+244
-0
zh-cn/application-dev/reference/apis/js-apis-arkui-componentSnapshot.md
...ion-dev/reference/apis/js-apis-arkui-componentSnapshot.md
+244
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-arkui-componentSnapshot.md
0 → 100644
浏览文件 @
26914477
# @ohos.arkui.componentSnapshot(组件截图)
本模块提供获取组件截图的能力,包括已加载的组件的截图和没有加载的组件的截图。
> **说明:**
>
> 本模块首批接口从 API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 示例效果请以真机运行为准,当前 IDE 预览器不支持。
## 导入模块
```
js
import
componentSnapshot
from
"
@ohos.arkui.componentSnapshot
"
;
```
## componentSnapshot.get
get(id: string, callback: AsyncCallback
<image.PixelMap>
): void
获取已加载的组件的截图,传入组件的
[
ID 标识
](
../arkui-ts/ts-universal-attributes-component-id.md#组件标识
)
,找到对应组件进行截图。通过回调返回结果。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------- | ---- | ------------------------------------------------------------------------------ |
| id | string | 是 | 目标组件的
[
ID 标识
](
../arkui-ts/ts-universal-attributes-component-id.md#组件标识
)
|
| callback | AsyncCallback
<
image.PixelMap
>
| 是 | 截图返回结果的回调。 |
**示例:**
```
js
import
componentSnapshot
from
'
@ohos.arkui.componentSnapshot
'
import
image
from
'
@ohos.multimedia.image
'
@
Entry
@
Component
struct
SnapshotExample
{
@
State
pixmap
:
image
.
PixelMap
=
undefined
build
()
{
Column
()
{
Image
(
this
.
pixmap
)
.
width
(
300
).
height
(
300
)
// ...Component
// ...Components
// ...Components
Button
(
"
click to generate UI snapshot
"
)
.
onClick
(()
=>
{
componentSnapshot
.
get
(
"
root
"
,
(
error
:
BusinessError
,
pixmap
:
image
.
PixelMap
)
=>
{
this
.
pixmap
=
pixmap
// save pixmap to file
// ....
})
})
}
.
width
(
'
80%
'
)
.
margin
({
left
:
10
,
top
:
5
,
bottom
:
5
})
.
height
(
200
)
.
border
({
color
:
'
#880606
'
,
width
:
2
})
.
id
(
"
root
"
)
}
}
```
## componentSnapshot.get
get(id: string): Promise
<image.PixelMap>
获取已加载的组件的截图,传入组件的
[
ID 标识
](
../arkui-ts/ts-universal-attributes-component-id.md#组件标识
)
,找到对应组件进行截图。通过Promise返回结果。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------------- | ---- | -------------------- |
| id | string | 是 | 目标组件的
[
ID 标识
](
../arkui-ts/ts-universal-attributes-component-id.md#组件标识
)
|
**返回值:**
| 类型 | 说明 |
| ----------------------------- | -------------- |
| Promise
<
image.PixelMap
>
| 截图返回的结果。 |
**示例:**
```
js
import
componentSnapshot
from
'
@ohos.arkui.componentSnapshot
'
import
image
from
'
@ohos.multimedia.image
'
@
Entry
@
Component
struct
SnapshotExample
{
@
State
pixmap
:
image
.
PixelMap
=
undefined
build
()
{
Column
()
{
Image
(
this
.
pixmap
)
.
width
(
300
).
height
(
300
)
// ...Component
// ...Components
// ...Components
Button
(
"
click to generate UI snapshot
"
)
.
onClick
(()
=>
{
componentSnapshot
.
get
(
"
root
"
)
.
then
((
pixmap
:
image
.
PixelMap
)
=>
{
this
.
pixmap
=
pixmap
// save pixmap to file
// ....
})
})
}
.
width
(
'
80%
'
)
.
margin
({
left
:
10
,
top
:
5
,
bottom
:
5
})
.
height
(
200
)
.
border
({
color
:
'
#880606
'
,
width
:
2
})
.
id
(
"
root
"
)
}
}
```
## componentSnapshot.createFromBuilder
createFromBuilder(builder: CustomBuilder, callback: AsyncCallback
<image.PixelMap>
): void
在应用后台渲染CustomBuilder自定义组件,并输出其截图。通过回调返回结果。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------- | ---- | -------------------- |
| builder |
[
CustomBuilder
](
../arkui-ts/ts-types.md#custombuilder8
)
| 是 | 自定义组件构建函数。 |
| callback | AsyncCallback
<
image.PixelMap
>
| 是 | 截图返回结果的回调。 |
**示例:**
```
js
import
componentSnapshot
from
'
@ohos.arkui.componentSnapshot
'
import
image
from
'
@ohos.multimedia.image
'
@
Entry
@
Component
struct
OffscreenSnapshotExample
{
@
State
pixmap
:
image
.
PixelMap
=
undefined
@
Builder
RandomBuilder
()
{
Flex
({
direction
:
FlexDirection
.
Column
,
justifyContent
:
FlexAlign
.
Center
,
alignItems
:
ItemAlign
.
Center
})
{
Text
(
'
Test menu item 1
'
)
.
fontSize
(
20
)
.
width
(
100
)
.
height
(
50
)
.
textAlign
(
TextAlign
.
Center
)
Divider
().
height
(
10
)
Text
(
'
Test menu item 2
'
)
.
fontSize
(
20
)
.
width
(
100
)
.
height
(
50
)
.
textAlign
(
TextAlign
.
Center
)
}.
width
(
100
)
}
build
()
{
Column
()
{
Button
(
"
click to generate offscreen UI snapshot
"
)
.
onClick
(()
=>
{
componentSnapshot
.
createFromBuilder
(
this
.
RandomBuilder
.
bind
(
this
),
(
error
:
BusinessError
,
pixmap
:
image
.
PixelMap
)
=>
{
this
.
pixmap
=
pixmap
// save pixmap to file
// ....
})
})
}.
width
(
'
80%
'
).
margin
({
left
:
10
,
top
:
5
,
bottom
:
5
}).
height
(
200
)
.
border
({
color
:
'
#880606
'
,
width
:
2
})
}
}
```
## componentSnapshot.createFromBuilder
createFromBuilder(builder: CustomBuilder): Promise
<image.PixelMap>
在应用后台渲染CustomBuilder自定义组件,并输出其截图。通过Promise返回结果。
**系统能力:**
SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------------- | ---- | -------------------- |
| builder |
[
CustomBuilder
](
../arkui-ts/ts-types.md#custombuilder8
)
| 是 | 自定义组件构建函数。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------- | -------------- |
| Promise
<
image.PixelMap
>
| 截图返回的结果。 |
**示例:**
```
js
import
componentSnapshot
from
'
@ohos.arkui.componentSnapshot
'
import
image
from
'
@ohos.multimedia.image
'
@
Entry
@
Component
struct
OffscreenSnapshotExample
{
@
State
pixmap
:
image
.
PixelMap
=
undefined
@
Builder
RandomBuilder
()
{
Flex
({
direction
:
FlexDirection
.
Column
,
justifyContent
:
FlexAlign
.
Center
,
alignItems
:
ItemAlign
.
Center
})
{
Text
(
'
Test menu item 1
'
)
.
fontSize
(
20
)
.
width
(
100
)
.
height
(
50
)
.
textAlign
(
TextAlign
.
Center
)
Divider
().
height
(
10
)
Text
(
'
Test menu item 2
'
)
.
fontSize
(
20
)
.
width
(
100
)
.
height
(
50
)
.
textAlign
(
TextAlign
.
Center
)
}.
width
(
100
)
}
build
()
{
Column
()
{
Button
(
"
click to generate offscreen UI snapshot
"
)
.
onClick
(()
=>
{
componentSnapshot
.
createFromBuilder
(
this
.
RandomBuilder
.
bind
(
this
))
.
then
((
pixmap
:
image
.
PixelMap
)
{
this
.
pixmap
=
pixmap
// save pixmap to file
// ....
})
})
}.
width
(
'
80%
'
).
margin
({
left
:
10
,
top
:
5
,
bottom
:
5
}).
height
(
200
)
.
border
({
color
:
'
#880606
'
,
width
:
2
})
}
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录