鸿蒙开发 Image二次封装

@Component
export struct BaseImageView {
  // 图片
  @State src: string | PixelMap | Resource = ""
  // 占位
  @State placeSrc: string | PixelMap | Resource = $r("app.media.ic_place_default")
  // 错误
  @State errorSrc: string | PixelMap | Resource = ""
  @State mWidth: Length = ""
  @State mHeight: Length = ""
  // 圆角
  @State radius: BorderRadiuses | Length | LocalizedBorderRadiuses = ""
  // 填充
  @State fit: ImageFit = ImageFit.Fill
  //圆形
  @State isClip: boolean = false

  build() {

    Column() {
      Image(this.src)
        .alt(this.placeSrc)
        .borderRadius(this.isClip ? "100%" : this.radius)
        .objectFit(this.fit)
        .width(this.mWidth)
        .height(this.mHeight)
        .clip(this.isClip)
        .onError(() => {
          if (this.errorSrc) {
            this.placeSrc = this.errorSrc
          }
        })
    }
  }
}

使用:

      BaseImageView({
        src: "https://www.openharmony.cn/_nuxt/img/logo.dcf95b3.png",
        mWidth: 200,
        mHeight: 200,
      })
      BaseImageView({
        src: "https://www.openharmony.cn/_nuxt/img/logo.dcf95b3",
        errorSrc: $r("app.media.app_icon"),
        mWidth: 200,
        mHeight: 200,
      })
      BaseImageView({
        src: $r('app.media.app_icon'),
        isClip: true,
        mWidth: 200,
        mHeight: 200,
      })

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值