【HarmonyOS】鸿蒙图片下载加载方案
作者:zhongcx
- 2024-10-15 北京
本文字数:675 字
阅读完需:约 2 分钟
如果有些图片 url 用 Image 组件加载不显示,可以 request 下载后利用 PixelMap 加载。
需要网络权限:src/main/module.json5
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
复制代码
src/main/ets/pages/Page010.ets
import { http } from '@kit.NetworkKit'
import { image } from '@kit.ImageKit'
@Entry
@Component
struct Page010 {
@State pixelMap: PixelMap | undefined = undefined
@State imgUrl: string = 'https://xxx.jpg'
build() {
Column() {
Text('加载url显示')
Image(this.imgUrl).width('200lpx').height('200lpx')
.onError((error: ImageError) => {
console.info('error', JSON.stringify(error))
})
.onComplete((event) => {
console.info('event', JSON.stringify(event))
})
Button('下载图片').onClick(() => {
http.createHttp().request(
this.imgUrl,
{ expectDataType: http.HttpDataType.ARRAY_BUFFER }
).then(async (res) => {
console.info('res', JSON.stringify(res))
// 将图片资源转为像素图(PixelMap)
this.pixelMap = await image.createImageSource(res.result as ArrayBuffer).createPixelMap()
}).catch(() => {
console.info('catch')
})
})
Text('下载图片后显示')
Image(this.pixelMap).width('200lpx')
}
.width('100%')
.height('100%')
}
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 8
zhongcx
关注
还未添加个人签名 2024-09-27 加入
还未添加个人简介
评论