@Entry @Component export default struct Index { build() { Column() { Row() { Image($r('app.media.startIcon')) .objectFit(ImageFit.Cover); } // 此处用aspectRatio模拟宽高比,也可以是具体的宽度和高度属性 .aspectRatio(1.5); Row() { Image($r('app.media.startIcon')) .objectFit(ImageFit.Cover); } // 此处用aspectRatio模拟宽高比,也可以是具体的宽度和高度属性 .aspectRatio(1); } .width('100%') .height('100%'); } }
ImageFit.Cover使得图片两边都大于或等于显示边界,对齐方式为水平居中。当图片延长至状态栏,宽度也会超出屏幕外,因此当Image组件引用的图片资源的宽高比与父组件宽高比不一致时,显示出来的图片就会被截断。应用中不同宽高比父组件引用了同一张图片,与图片宽高比不一致的父组件在页面上显示出来的图片就会被截断。
@Entry @Component struct ImagePage { build() { Column() { Row() { // 这里引用的资源图片宽高比为1.5,该资源只是示例,使用时可更改为已有资源 Image($r('app.media.test')) .objectFit(ImageFit.Cover) } // 此处用aspectRatio模拟宽高比,也可以是具体的宽度和高度属性 .aspectRatio(1.5) .margin(10) } .width('100%') .height('100%') } }