HarmonyOS image resizable问题咨询

HarmonyOS
2024-10-08 10:40:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

resizable是设置图像拉伸时可调整大小的图像选项。

1. 拉伸对拖拽缩略图以及占位图有效。

2. 设置合法的 ResizableOptions 时,objectRepeat 属性设置不生效。

3. 当设置 top +bottom 大于原图的高或者 left + right 大于原图的宽时 ResizableOptions 属性设置不生效。

示例代码:

@Entry  
@Component  
struct ImageComponent {  
  @State top: number = 40  
  @State bottom: number = 5  
  @State left: number = 40  
  @State right: number = 10  
  build() {  
    Column({ space: 5 }) {  
      // 原图效果  
      Image("xxxx")  
        .width(200).height(200)  
        .border({ width: 2, color: Color.Pink })  
        .objectFit(ImageFit.Contain)  
      // 图像拉伸效果,设置resizable属性,对图片不同方向进行拉伸  
      Image("xxx")  
        .resizable({  
          slice: {  
            left: this.left,  
            right: this.right,  
            top: this.top,  
            bottom: this.bottom  
          }  
        })  
        .width(200)  
        .height(200)  
        .border({ width: 2, color: Color.Pink })  
        .objectFit(ImageFit.Contain)  
      Row() {  
        Button("add top to " + this.top).fontSize(10)  
          .onClick(() => {  
            this.top += 2  
          })  
        Button("add bottom to " + this.bottom).fontSize(10)  
          .onClick(() => {  
            this.bottom += 2  
          })  
      }  
      Row() {  
        Button("add left to " + this.left).fontSize(10)  
          .onClick(() => {  
            this.left += 2  
          })  
        Button("add right to " + this.right).fontSize(10)  
          .onClick(() => {  
            this.right += 2  
          })  
      }  
    }  
    .justifyContent(FlexAlign.Start).width('100%').height('100%')  
  }  
}
分享
微博
QQ
微信
回复
2024-10-08 16:11:39
提问
该提问已有0人参与 ,帮助了0人