暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

【画龙迎春】 HarmonyOS Image 组件的基本使用之画龙迎春,“码”上“鸿”福到

原创 若城 2024-02-28
740

Table of Contents

前言

各位朋友们大家好! 本想再摸鱼几天, 然后一看今天已经28号了, 真实“锤死梦中惊坐起”啊! 时间太快了,今天遍接着这篇博文简单的说一下本人今年的大体博文知识更新计划,有兴趣的朋友记得关于一下哦!

  1. 鸿蒙从入门到实战
  2. 软考高项知识点分享
  3. 技术测评
  4. 粉丝福利【送书大爆发】

24年若城将从以上四个方向进行博文更新!
废话不多说啦, 龙年就从画一个龙来开始本年的幸福之旅吧! let’s go!!!

效果展示

tutieshi_640x1025_10s.gif

素材

已将素材文件上传至oss 服务器中,链接如下

素材一 素材二
http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dino.gif http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dinofx.gif

代码开发

申请权限

本次的demo 开发因为我们使用的是http链接来访问的图片地址, 因此需要申请权限,步骤如下:

  1. 找到路劲 entry -> src -> main -> module.json5
  2. module.json5中添加网络权限的申请
"requestPermissions": [
  {
    "name": "ohos.permission.INTERNET",
  }
]

设置变量

  @State imgSrc: string = 'http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dino.gif'
  @State hasgit:boolean=false
  @State hasMp:boolean=false
  @State img2Src:string ='http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dinofx.gif'

变量解释

imgSrcimg2Src是图片展示的地址
hasgithasMp用于判断对应图片的展示与隐藏

按钮设置

 Row(){
            Column({space:5}){
             Row(){
               Button('清空画布').onClick(()=>{
                 this.hasgit=false
                 this.hasMp=false
               })
               Button('龙年暴富->画龙').onClick(()=>{
                 this.hasgit=true
                 this.hasMp=false
               })
             }
              Button('“码”上“鸿”福到->画龙').onClick(()=>{
                this.hasgit=false
                this.hasMp=true
              })
            }

          }.padding(10)

代码中设置三个 button按钮 第一个button 主要用于清空画布, 第二个和第三个按钮用于展示对应的图片
通过按钮来设置 hasgithasMp两个变量的状态

图片展示

        Row(){
          if (this.hasgit){
             Image(this.imgSrc).width('100%').height('100%')

          }else if(this.hasMp){
            Image(this.img2Src).width('100%').height('100%')

          }
        }
        .layoutWeight(1)

通过if … else if … 来控制不同图片的展示与隐藏

layoutWeight属性讲解

父容器尺寸确定时,设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置,表示自适应占满剩余空间。

注意
layoutWeight 仅在Row/Column/Flex布局中生效。可选值为大于等于0的数字,或者可以转换为数字的字符串。

完整代码

@Entry
@Component
struct Index {
  @State imgSrc: string = 'http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dino.gif'
  @State hasgit:boolean=false
  @State hasMp:boolean=false
  @State img2Src:string ='http://s9g9q4h1t.hb-bkt.clouddn.com/myimg/dinofx.gif'

  build() {
    Row() {
      Column() {
          Row(){
            Column({space:5}){
             Row(){
               Button('清空画布').onClick(()=>{
                 this.hasgit=false
                 this.hasMp=false
               })
               Button('龙年暴富->画龙').onClick(()=>{
                 this.hasgit=true
                 this.hasMp=false
               })
             }
              Button('“码”上“鸿”福到->画龙').onClick(()=>{
                this.hasgit=false
                this.hasMp=true
              })
            }

          }.padding(10)
        Row(){
          if (this.hasgit){
             Image(this.imgSrc).width('100%').height('100%')

          }else if(this.hasMp){
            Image(this.img2Src).width('100%').height('100%')

          }
        }
        .layoutWeight(1)
      }
      .height('100%')
      .width('100%')
    }
    .width('100%')
    .height('100%')
  }
}

拓展Image 组件

Image 组件的详细使用及基本案例 ,会在3月份进行逐渐更新博文的呦, 本次先简单的介绍一下 Image 组件

  1. Image支持加载string、PixelMap和Resource类型的数据源,支持png、jpg、bmp、svg和gif类型的图片格式。
  2. 使用网络图片时,需要申请权限ohos.permission.INTERNET

参数类型说明

image.png

总结

harmonyos 的Image 组件使用起来还是比较顺手的, 其中包含了多个参数以及事件方法, 可以尝试的去跟着本博文的教程体验一下的呦

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论