前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【画龙迎春】 HarmonyOS Image 组件的基本使用之画龙迎春,“码”上“鸿”福到

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

作者头像
全栈若城
发布2024-02-29 21:06:33
1200
发布2024-02-29 21:06:33
举报
文章被收录于专栏:若城技术专栏若城技术专栏

前言

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

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

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

效果展示

素材

已将素材文件上传至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中添加网络权限的申请
代码语言:javascript
复制
"requestPermissions": [
  {
    "name": "ohos.permission.INTERNET",
  }
]
设置变量
代码语言:javascript
复制
  @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用于判断对应图片的展示与隐藏

按钮设置
代码语言:javascript
复制
 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两个变量的状态

图片展示
代码语言:javascript
复制
        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的数字,或者可以转换为数字的字符串。

完整代码
代码语言:javascript
复制
@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
参数类型说明

总结

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 效果展示
      • 素材
        • 代码开发
          • 申请权限
          • 设置变量
          • 按钮设置
          • 图片展示
          • layoutWeight属性讲解
          • 完整代码
        • 拓展Image 组件
          • 参数类型说明
        • 总结
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档