Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c7e15cf7
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看板
未验证
提交
c7e15cf7
编写于
5月 25, 2022
作者:
L
LiAn
提交者:
Gitee
5月 25, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md.
Signed-off-by:
N
LiAn
<
lian15@huawei.com
>
上级
99946978
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
82 addition
and
58 deletion
+82
-58
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md
...ation-dev/reference/arkui-ts/ts-basic-components-image.md
+82
-58
未找到文件。
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md
浏览文件 @
c7e15cf7
# Image
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
图片组件,支持本地图片和网络图片的渲染展示。
> **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
图片组件,用来渲染展示图片。
## 权限说明
## 权限列表
使用网络图片时,需要在config.json(FA模型)或者module.json5(Stage模型)对应的"abilities"中添加网络使用权限ohos.permission.INTERNET。
ohos.permission.INTERNET(使用网络图片)
```
json
"abilities"
:
[
{
...
"permissions"
:
[
"ohos.permission.INTERNET"
],
...
}
]
```
## 子组件
...
...
@@ -21,61 +30,71 @@ ohos.permission.INTERNET(使用网络图片)
Image(src: string | PixelMap | Resource)
-
参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| src | string
\|
[PixelMap](../apis/js-apis-image.md#pixelmap7)\|
[
Resource
](
../../ui/ts-types.md#resource类型
)
| 是 | - | 图片的数据源,支持本地图片和网络图片。
<br/>
\-
支持的图片格式包括png、jpg、bmp、svg和gif。
<br/>
\-
支持
`Base64`
字符串。格式
`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`
, 其中
`[base64 data]`
为
`Base64`
字符串数据。
<br/>
\-
支持
`dataability://`
路径前缀的字符串,用于访问通过data
ability提供的图片路径。 |
通过图片数据源获取图片,用于后续渲染展示。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| src | string
\|
[PixelMap](../apis/js-apis-image.md#pixelmap7)\|
[
Resource
](
../../ui/ts-types.md#resource类型
)
| 是 | - | 图片的数据源,支持本地图片和网络图片。
<br/>
\-
支持的图片格式包括png、jpg、bmp、svg和gif。
<br/>
\-
支持
`Base64`
字符串。格式
`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`
, 其中
`[base64 data]`
为
`Base64`
字符串数据。
<br/>
\-
支持
`dataability://`
路径前缀的字符串,用于访问通过data
ability提供的图片路径。 |
## 属性
除支持
[
通用属性
](
ts-universal-attributes-size.md
)
外,还支持以下属性:
| 名称 | 参数类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| alt | string | - | 加载时显示的占位图。支持本地图片和网络路径。 |
| objectFit | ImageFit | Cover | 设置图片的缩放类型。 |
| objectRepeat |
[
ImageRepeat
](
ts-appendix-enums.md#imagerepeat枚举说明
)
| NoRepeat | 设置图片的重复样式。
<br/>
>
![icon-note.gif](public_sys-resources/icon-note.gif)
**说明:**
<br/>
>
-
SVG类型图源不支持该属性。 |
| interpolation | ImageInterpolation | None | 设置图片的插值效果,仅针对图片放大插值。
<br/>
>
![icon-note.gif](public_sys-resources/icon-note.gif)
**说明:**
<br/>
>
-
SVG类型图源不支持该属性。
<br/>
>
<br/>
>
-
PixelMap资源不支持该属性。 |
| renderMode | ImageRenderMode | Original | 设置图片渲染的模式。
<br/>
>
![icon-note.gif](public_sys-resources/icon-note.gif)
**说明:**
<br/>
>
-
SVG类型图源不支持该属性。 |
| sourceSize | {
<br/>
width:
number,
<br/>
height:
number
<br/>
} | - | 设置图片解码尺寸,将原始图片解码成指定尺寸的图片,number类型单位为px。
<br/>
>
![icon-note.gif](public_sys-resources/icon-note.gif)
**说明:**
<br/>
>
PixelMap资源不支持该属性。 |
| syncLoad
<sup>
8+
</sup>
| boolean | false | 设置是否同步加载图片,默认是异步加载。同步加载时阻塞UI线程,不会显示占位图。 |
-
ImageFit枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Cover | 保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。 |
| Contain | 保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。 |
| Fill | 不保持宽高比进行放大缩小,使得图片填充满显示边界。 |
| None | 保持原有尺寸显示。通常配合objectRepeat属性一起使用。 |
| ScaleDown | 保持宽高比显示,图片缩小或者保持不变。 |
-
ImageInterpolation枚举说明
| 名称 | 描述 |
| -------- | -------- |
| None | 不使用插值图片数据。 |
| High | 高度使用插值图片数据,可能会影响图片渲染的速度。 |
| Medium | 中度使用插值图片数据。 |
| Low | 低度使用插值图片数据。 |
-
ImageRenderMode枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Original | 按照原图进行渲染,包括颜色。 |
| Template | 将图像渲染为模板图像,忽略图片的颜色信息。 |
| alt | string
\|
[
Resource
](
../../ui/ts-types.md#resource类型
)
| - | 加载时显示的占位图,支持本地图片和网络图片。 |
| objectFit |
[
ImageFit
](
#imagefit枚举说明
)
| ImageFit.Cover | 设置图片的缩放类型。 |
| objectRepeat |
[
ImageRepeat
](
ts-appendix-enums.md#imagerepeat
)
| NoRepeat | 设置图片的重复样式。
<br/>
>
**说明:**
<br/>
>
-
svg类型图源不支持该属性。 |
| interpolation(添加示例代码) |
[
ImageInterpolation
](
#imageInterpolation
)
| ImageInterpolation.None | 设置图片的插值效果,仅针对图片放大插值。
<br/>
>
**说明:**
<br/>
>
-
svg类型图源不支持该属性。
<br/>
>
-
PixelMap资源不支持该属性。 |
| renderMode |
[
ImageRenderMode
](
#imagerendermode
)
| ImageRenderMode.Original | 设置图片渲染的模式。
<br/>
>
**说明:**
<br/>
>
-
svg类型图源不支持该属性。 |
| sourceSize | {
<br/>
width:
number,
<br/>
height:
number
<br/>
} | - | (需要确定)设置图片裁剪尺寸,将原始图片解码成pixelMap,指定尺寸的图片,单位为px。
<br/>
>
**说明:**
<br/>
>
PixelMap资源不支持该属性。 |
| (添加示例代码)syncLoad
<sup>
8+
</sup>
| boolean | false | 设置是否同步加载图片,默认是异步加载。同步加载时阻塞UI线程,不会显示占位图。 |
### ImageFit
## 事件
| 名称 | 描述 |
| -------- | -------- |
| Cover | 保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。 |
| Contain | 保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。 |
| Fill | 不保持宽高比进行放大缩小,使得图片充满显示边界。 |
| None | 保持原有尺寸显示,通常配合objectRepeat属性一起使用。 |
| ScaleDown | 保持宽高比显示,图片缩小或者保持不变。 |
### ImageInterpolation
| 名称 |
功能描述 |
| 名称 |
描述 |
| -------- | -------- |
| onComplete(callback:
(event?:
{
width:
number,
height:
number,
componentWidth:
number,
<br>
componentHeight:
number,
loadingStatus:
number
})
=
>
void) | 图片成功加载时触发该回调,返回成功加载的图源尺寸。 |
| onError(callback:
(event?:
{
componentWidth:
number,
componentHeight:
number
})
=
>
void) | 图片加载出现异常时触发该回调。 |
| onFinish(callback:
()
=
>
void) | 当加载的源文件为带动效的svg图片时,当svg动效播放完成时会触发这个回调,如果动效为无限循环动效,则不会触发这个回调。 |
| None | 不使用插值图片数据。 |
| High(需要确认) | 插值图片数据的使用率高,可能会影响图片渲染的速度。 |
| Medium | 插值图片数据的使用率中。 |
| Low | 插值图片数据的使用率低。 |
### ImageRenderMode
| 名称 | 描述 |
| -------- | -------- |
| Original | 按照原图进行渲染,包括颜色。 |
| Template | 将图片渲染为模板图片,忽略图片的颜色信息。 |
## 事件
除支持
[
通用事件
](
ts-universal-events-click.md
)
外,还支持以下事件:
| 名称 | 功能描述 |
| -------- | -------- |
| onComplete(callback:
(event?:
{
width:
number,
height:
number,
componentWidth:
number,
<br>
componentHeight:
number,
loadingStatus:
number
})
=
>
void) | 图片成功加载时触发该回调,返回成功加载的图片尺寸。
<br>
- width:图片的宽,单位为像素。
<br/>
- height:图片的高,单位为像素。
<br/>
- componentWidth:组件的宽,单位为像素。
<br/>
- componentHeight:组件的高,单位为像素。
<br/>
- loadingStatus:图片加载成功的状态。(几为成功)
<br/>
|
| onError(callback:
(event?:
{
componentWidth:
number,
componentHeight:
number
})
=
>
void) | 图片加载出现异常时触发该回调。
<br>
- componentWidth:组件的宽,单位为像素。
<br/>
- componentHeight:组件的高,单位为像素。
<br/>
|
| onFinish(callback:
()
=
>
void) | 当加载的源文件为带动效的svg图片时,当svg动效播放完成时会触发这个回调,如果动效为无限循环动效,则不会触发这个回调。 |
## 示例
```
// Image1
### 图片加载
加载并显示不同类型的图片,并设置图片的缩放类型。
```
ts
@
Entry
@
Component
struct
ImageExample1
{
...
...
@@ -141,8 +160,11 @@ struct ImageExample1 {
![
zh-cn_image_0000001250492613
](
figures/zh-cn_image_0000001250492613.gif
)
```
// Image2
### 设置属性
添加xxx属性,
```
ts
@
Entry
@
Component
struct
ImageExample2
{
...
...
@@ -162,12 +184,12 @@ struct ImageExample2 {
.
border
({
width
:
1
}).
borderStyle
(
BorderStyle
.
Dashed
)
.
overlay
(
'
Template
'
,
{
align
:
Alignment
.
Bottom
,
offset
:
{
x
:
0
,
y
:
20
}
})
}
Text
(
'
alt
'
).
fontSize
(
12
).
fontColor
(
0xcccccc
).
width
(
'
96%
'
).
height
(
30
)
Image
(
''
)
.
alt
(
$r
(
'
app.media.Image_none
'
))
.
width
(
100
).
height
(
100
).
border
({
width
:
1
}).
borderStyle
(
BorderStyle
.
Dashed
)
Text
(
'
sourceSize
'
).
fontSize
(
12
).
fontColor
(
0xcccccc
).
width
(
'
96%
'
)
Row
({
space
:
50
})
{
Image
(
$r
(
'
app.media.img_example
'
))
...
...
@@ -187,7 +209,7 @@ struct ImageExample2 {
.
border
({
width
:
1
}).
borderStyle
(
BorderStyle
.
Dashed
)
.
overlay
(
'
w:200 h:200
'
,
{
align
:
Alignment
.
Bottom
,
offset
:
{
x
:
0
,
y
:
20
}
})
}
Text
(
'
objectRepeat
'
).
fontSize
(
12
).
fontColor
(
0xcccccc
).
width
(
'
96%
'
).
height
(
30
)
Row
({
space
:
5
})
{
Image
(
$r
(
'
app.media.ic_health_heart
'
))
...
...
@@ -210,17 +232,18 @@ struct ImageExample2 {
![
zh-cn_image_0000001205812616
](
figures/zh-cn_image_0000001205812616.png
)
```
// Image3
### 事件调用
```
ts
@
Entry
@
Component
struct
ImageExample3
{
@
State
width
:
number
=
0
@
State
height
:
number
=
0
private on: Resource = $r('app.media.
wifi
_on')
private off: Resource = $r('app.media.
wifi
_off')
private on2off: Resource = $r('app.media.
wifi
_on2off')
private off2on: Resource = $r('app.media.
wifi
_off2on')
private
on
:
Resource
=
$r
(
'
app.media.
image
_on
'
)
private
off
:
Resource
=
$r
(
'
app.media.
image
_off
'
)
private
on2off
:
Resource
=
$r
(
'
app.media.
image
_on2off
'
)
private
off2on
:
Resource
=
$r
(
'
app.media.
image
_off2on
'
)
@
State
src
:
Resource
=
this
.
on
build
()
{
...
...
@@ -235,6 +258,7 @@ struct ImageExample3 {
})
.
objectFit
(
ImageFit
.
Cover
)
.
height
(
180
).
width
(
180
)
// 图片加载完成后,获取图片尺寸。
.
onComplete
((
msg
:
{
width
:
number
,
height
:
number
})
=>
{
this
.
width
=
msg
.
width
this
.
height
=
msg
.
height
...
...
@@ -247,7 +271,7 @@ struct ImageExample3 {
offset
:
{
x
:
0
,
y
:
20
}
})
}
// 为图片添加点击事件,点击完成后加载特定图片。
Image
(
this
.
src
)
.
width
(
120
).
height
(
120
)
.
onClick
(()
=>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录