diff --git a/entry/src/main/ets/pages/SingleImage.ets b/entry/src/main/ets/pages/SingleImage.ets index b92d6eb..b850b82 100644 --- a/entry/src/main/ets/pages/SingleImage.ets +++ b/entry/src/main/ets/pages/SingleImage.ets @@ -50,7 +50,7 @@ struct SingleImage { loadSrc: $r("app.media.svgSample"), placeholderSrc: $r("app.media.loading"), errorholderSrc: $r("app.media.failed"), - objectFit: ImageFit.Contain + objectFit: ImageFit.Contain, }) }).width(100).height(100) .onClick(()=>{ @@ -67,6 +67,18 @@ struct SingleImage { objectFit: ImageFit.Contain }) }).width(100).height(100) + Text("测试aspectRatio") + .fontSize(30) + .fontWeight(FontWeight.Bold) + ImageKnifeComponent({ + imageKnifeOption: new ImageKnifeOption({ + loadSrc: this.localFile, + placeholderSrc: $r("app.media.loading"), + errorholderSrc: $r("app.media.failed"), + objectFit: ImageFit.Contain, + aspectRatio: 1.5 + }) + }).width(100).height(100).backgroundColor(Color.Red) Text("网络图片") .fontSize(30) .fontWeight(FontWeight.Bold) diff --git a/library/src/main/ets/ImageKnifeOption.ets b/library/src/main/ets/ImageKnifeOption.ets index 3a9bf6f..9d98bf5 100644 --- a/library/src/main/ets/ImageKnifeOption.ets +++ b/library/src/main/ets/ImageKnifeOption.ets @@ -90,6 +90,7 @@ interface ImageOption { onLoadListener?: OnLoadCallBack | undefined; onComplete?:(event:EventImage | undefined) => void drawingColorFilter?: ColorFilter | drawing.ColorFilter + aspectRatio?: number; } @ObservedV2 export class ImageKnifeOption { @@ -121,6 +122,7 @@ export class ImageKnifeOption { onLoadListener?: OnLoadCallBack | undefined; onComplete?:(event:EventImage | undefined) => void drawingColorFilter?: ColorFilter | drawing.ColorFilter + aspectRatio?: number; constructor(option?:ImageOption) { this.loadSrc = option?.loadSrc == undefined ? "" : option?.loadSrc this.placeholderSrc = option?.placeholderSrc @@ -141,6 +143,7 @@ export class ImageKnifeOption { this.onLoadListener = option?.onLoadListener this.onComplete = option?.onComplete this.drawingColorFilter = option?.drawingColorFilter + this.aspectRatio = option?.aspectRatio } } diff --git a/library/src/main/ets/components/ImageKnifeComponent.ets b/library/src/main/ets/components/ImageKnifeComponent.ets index 29a2b20..5052e51 100644 --- a/library/src/main/ets/components/ImageKnifeComponent.ets +++ b/library/src/main/ets/components/ImageKnifeComponent.ets @@ -93,6 +93,7 @@ export struct ImageKnifeComponent { .border(this.imageKnifeOption.border) .syncLoad(this.syncLoad) .draggable(false) + .aspectRatio(this.imageKnifeOption.aspectRatio) .onComplete(this.imageKnifeOption.onComplete) .onSizeChange((oldValue:SizeOptions, newValue:SizeOptions) => { this.currentWidth = newValue.width as number