HarmonyOS NEXT - ArkUI: Image组件

Image组件用来渲染展示图片,它可以让界面变得更加丰富多彩。

例如:按钮中的icon、网络图片、本地图片等。在应用中显示图片需要使用Image组件实现,Image支持多种图片格式,包括png、jpg、bmp、svg、gif和heif。

Image组件数据源

  • 本地资源:存放在ets文件夹下,引用根目录ets文件夹下的资源路径即可。
  • Resource资源:通过$r资源接口读取并转换到Resource格式。
  • 网络资源:引用网络地址,需在module.json5文件中申明网络访问权限ohos.permission.INTERNET。
  • 媒体库file://data/storage。支持file://路径前缀的字符串,用于访问通过选择器提供的图片路径。
  • 多媒体像素图:PixelMap是图片解码后的像素图,将加载的网络图片返回的数据解码成PixelMap格式,再显示在Image组件上。

图片地址:https://imagepphcloud.thepaper.cn/pph/image/208/499/752.jpg 在module.json5文件中申明网络访问权限:

{
    "module" : {
        "requestPermissions":[
           {
             "name": "ohos.permission.INTERNET"
           }
        ]
    }
}

Image组件可显示矢量图(svg格式的图片),使用fillColor属性改变图片的绘制颜色。

.fillColor(value: ResourceColor)

设置缩放类型:objectFit属性

.objectFit(value: ImageFit)

ImageFit枚举类型:

  • ImageFit.Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。
  • ImageFit.Cover(默认值):保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。
  • ImageFit.Auto:自适应显示。
  • ImageFit.Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。
  • ImageFit.ScaleDown:保持宽高比显示,图片缩小或者保持不变。
  • ImageFit.None:保持原有尺寸显示。

代码实例:ImagePage

@Entry
@Component
struct ImagePage {
  @State message: string = 'Image组件';

  build() {
    Column({space:6}) {
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)

      Image('images/panda.jpg').width(100)

      Image($r('app.media.cat')).width(100)
      Image($r('app.media.cat')).width(100).height(200).objectFit(ImageFit.Fill)

      Image('https://imagepphcloud.thepaper.cn/pph/image/208/499/752.jpg').width("100%")

      Image($r('app.media.add')).width(50).fillColor(Color.Blue)
    }
    .height('100%')
    .width('100%')
  }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务