HarmonyOS 使用resizable做图片拉伸,如何实现想要的效果

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

参考示例如下:

@Entry
@Component
export struct ImageExample2 {
  @State show: Boolean = true
  @State top: number = 0
  @State bottom: number = 0
  @State left: number = 0
  @State right: number = 0
  @State fit: ImageFit = ImageFit.Cover
  @State w: number = 300
  @State h: number = 300

  build() {
    Column({ space: 10 }) {
      if (this.show) {
        Image($r("app.media.cat"))// 直接加载网络地址,请填写一个具体的网络图片地址
          .width(this.w)
          .height(this.h)
          .borderRadius(4)
          .padding(10)
          .resizable({
            slice: {
              top: this.top,
              bottom: this.bottom,
              left: this.left,
              right: this.right
            }
          })
          .objectFit(this.fit)
          .backgroundColor(Color.Orange)
      }
      Row() {
        Button("add top to " + this.top).fontSize(10)
          .onClick(() => {
            this.top += 2
          })
        Button("add bottom " + this.bottom).fontSize(10)
          .onClick(() => {
            this.bottom += 2
          })
        Button("add left " + this.left).fontSize(10)
          .onClick(() => {
            this.left += 2
          })
        Button("add right " + this.right).fontSize(10)
          .onClick(() => {
            this.right += 2
          })
      }

      Row() {
        Button("reduce top to " + this.top).fontSize(10)
          .onClick(() => {
            this.top -= 2
          })
        Button("reduce bottom " + this.bottom).fontSize(10)
          .onClick(() => {
            this.bottom -= 2
          })
        Button("reduce left " + this.left).fontSize(10)
          .onClick(() => {
            this.left -= 2
          })
        Button("reduce right " + this.right).fontSize(10)
          .onClick(() => {
            this.right -= 2
          })
      }

      Row() {
        Button("add w").fontSize(10)
          .onClick(() => {
            this.w += 2
          })
        Button("add h").fontSize(10)
          .onClick(() => {
            this.h += 2
          })
      }

    }.width("100%").height("100%").backgroundColor(Color.Pink)
    .onClick(() => {
      this.show = !this.show
    })
  }
}
分享
微博
QQ
微信
回复
23h前
相关问题
想要实现一个图片裁剪功能
422浏览 • 1回复 待解决
HarmonyOS 图片按压效果实现
150浏览 • 2回复 待解决
如何实现图片大图预览效果
2156浏览 • 1回复 待解决
图片模糊效果如何实现
781浏览 • 1回复 待解决
HarmonyOS image resizable问题咨询
443浏览 • 1回复 待解决
HarmonyOS 想要实现图中这样UI
257浏览 • 1回复 待解决
基于ArkUI实现类似.9图拉伸能力
600浏览 • 1回复 待解决