HarmonyOS基本工具封装——BaseImage解决鸿蒙加载图片过大时闪退问题

78 阅读2分钟

前言

简介

鸿蒙基本库封装,提升鸿蒙开发效率

安装

ohpm install @peakmain/library

介绍

  • 解决华为图片过大闪退问题
  • 用于显示图片或占位图的基础组件,支持图片加载、尺寸控制、圆角处理等功能。

导入依赖

import { BaseImage} from '@peakmain/library'

组件属性

属性名类型默认值说明
urlResourceStr""图片资源路径(必填)
imageSizeSizeOptions | nullnull图片大小设置(宽度和高度)
fillColorResourceColor | ResourceStrundefined图片填充颜色(可选)
imageFitImageFit | nullnull图片适配方式(如 covercontain 等)
imageRadiusLength | BorderRadiuses | LocalizedBorderRadiuses | nullnull图片圆角设置(支持单值或四周边角)
placeBackgroundColorResourceColorColorMetrics.numeric(0xFFE9E9E9).color占位图背景颜色(当 url 为空时显示)

组件方法

方法名参数返回值说明
buildvoid组件构建方法:
- 若 url 为空,显示带占位背景和圆角的 Stack
- 若 url 有效,显示图片并应用配置

解决原理

  • 核心代码:autoResize
  • 官方文档地址:developer.huawei.com/consumer/cn…
  • 设置图片解码过程中是否对图源自动缩放。降采样解码时图片的部分信息丢失,因此可能会导致图片质量的下降(如:出现锯齿),这时可以选择把autoResize设为false,按原图尺寸解码,提升显示效果,但会增加内存占用。
  • 虽官方说图片部分信息丢失,但我们这边测下,基本没啥区别(肉眼上)