鸿蒙开发笔记03 ---- 基础组件

本文详细介绍了ArkUI中的五个关键组件:Image用于显示图片,Text处理文本,TextInput用于文本输入,Button控制交互,以及Slider实现滑动操作。每个组件的使用方法、代码示例和效果展示都被涵盖。
摘要由CSDN通过智能技术生成

1 、image组件

1.1 组件简介

Image:图片显示文件

1.2 代码示例:

@Entry  //标记当前组件的入口组件     装饰器
@Component  //标记该变量、值变化时会触发UI刷新
struct Index {    //自定义组件:可复用UI单元
  @State message: string = 'Hello World'  //装饰器  标记该变量是状态变量,值变化会触发UI刷新

  build() { //UI描述:其内部以声明式方式描述UI结构
    Row() {
      Column() {   //内部组件:ArkUI提供的组件
                   //容器组件:用来完成页面布局  例如Row  Column
                   //基础组件:  自带样式和功能的页面元素 例如 Text
        Text(this.message)
          .fontSize(50)    //属性方法 :设置组件的UI样式
          .fontWeight(FontWeight.Bold)
          .fontColor('#36D')
          .onClick(()=>{  //事件方法  设置组件
            this.message = 'Hello 房晨础!'
          })
        // 添加图片方式一:网络地址的方式,需要在module.json5中添加网络访问权限
        // Image("https://hshop.honorfile.com/pimages/product/6936520832682/428_428_37879C0250C6869B2AFBEBE36368662A967F9E67B89B3971mp.png")
        //   .width(250)//单位是vp虚拟像素

        //添加图片方式二:基于本地文件
        Image($r('app.media.icon'))
          .width(250)
          .interpolation(ImageInterpolation.High) //给图片添加插值  让图片更加清晰
      }
      .width('100%')//属性方法
    }
    .height('100%')
  }
}

1.3 效果展示

2、 Text组件

2.1 组件简介

注意:添加String值要在三个目录下都添加 先走中/英再走base

2.2 代码示例

@Entry  //标记当前组件的入口组件     装饰器
@Component  //标记该变量、值变化时会触发UI刷新
struct Index {    //自定义组件:可复用UI单元
  @State message: string = 'Hello World'  //装饰器  标记该变量是状态变量,值变化会触发UI刷新

  build() { //UI描述:其内部以声明式方式描述UI结构
    Row() {
      Column() {   //内部组件:ArkUI提供的组件
                   //容器组件:用来完成页面布局  例如Row  Column
                   //基础组件:  自带样式和功能的页面元素 例如 Text

        Image("https://hshop.honorfile.com/pimages/product/6936520832682/428_428_37879C0250C6869B2AFBEBE36368662A967F9E67B89B3971mp.png")
          .width(250)//单位是vp虚拟像素

        //添加图片方式二:基于本地文件
        // Image($r('app.media.icon'))
        //   .width(250)
        //   .interpolation(ImageInterpolation.High) //给图片添加插值  让图片更加清晰

        Text($r('app.string.width_label'))
          .fontSize(20) //设置字体大小
          .fontWeight(FontWeight.Bold) //设置文本加粗
      }
      .width('100%')//属性方法
    }
    .height('100%')
  }
}

2.3 效果展示

3、TextInput 组件

3.1 简介

3.2 代码示例:

@Entry  //标记当前组件的入口组件     装饰器
@Component  //标记该变量、值变化时会触发UI刷新
struct Index {    //自定义组件:可复用UI单元
  @State imageWidth: number= 30  //装饰器  标记该变量是状态变量,值变化会触发UI刷新

  build() { //UI描述:其内部以声明式方式描述UI结构
    Row() {
      Column() {   //内部组件:ArkUI提供的组件
                   //容器组件:用来完成页面布局  例如Row  Column
                   //基础组件:  自带样式和功能的页面元素 例如 Text

        // 图片组件
        Image("https://hshop.honorfile.com/pimages/product/6936520832682/428_428_37879C0250C6869B2AFBEBE36368662A967F9E67B89B3971mp.png")
          .width(this.imageWidth)//单位是vp虚拟像素

        //添加图片方式二:基于本地文件
        // Image($r('app.media.icon'))
        //   .width(250)
        //   .interpolation(ImageInterpolation.High) //给图片添加插值  让图片更加清晰

         //文本组件
        Text($r('app.string.width_label'))
          .fontSize(20) //设置字体大小
          .fontWeight(FontWeight.Bold) //设置文本加粗

        // 文本输入框组件
        TextInput({placeholder:"请输入图片宽度",text:this.imageWidth.toString(0)})
          .width(250)
          .backgroundColor("#36d")
          .type(InputType.Password)
          //时间方法
          .onChange((value:string )=>{
                // console.log(value);
            this.imageWidth = parseInt(value)
          })

      }
      .width('100%')//属性方法



    }
    .height('100%')
  }
}

3.3 效果展示

4、Button组件

4.1 简介

4.2代码示例

@Entry
@Component
struct Index {
  @State imageWidth: number = 150

  build() {
    Row() {
      Column() {
        Image($r('app.media.icon'))
          .width(this.imageWidth)
          .interpolation(ImageInterpolation.High)


        Text($r('app.string.width_label'))
          .fontSize(20)
          .fontWeight(FontWeight.Bold)

        TextInput({ text: this.imageWidth.toFixed(0) })
          .width(150)
          .backgroundColor('#36d')
          .type(InputType.Number)
          .onChange(value => {
            this.imageWidth = parseInt(value)
          })

        Button('缩小')
          .width(80)
          .fontSize(20)
          .type(ButtonType.Normal)
          .onClick(()=>{
            if(this.imageWidth>=10){
              this.imageWidth -=10
            }

          })
        Button('放大')
          .width(80)
          .fontSize(20)
          .onClick(()=>{
            if(this.imageWidth<=300){
              this.imageWidth +=10
            }
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

4.3 效果展示

5、slider滑动条组件

5.1 简介

5.2 代码示例


@Entry
@Component
struct Index {
  @State imageWidth: number = 150

  build() {
    Row() {
      Column() {
        Image($r('app.media.icon'))
          .width(this.imageWidth)
          .interpolation(ImageInterpolation.High)


        Text($r('app.string.width_label'))
          .fontSize(20)
          .fontWeight(FontWeight.Bold)

        TextInput({ text: this.imageWidth.toFixed(0) })
          .width(150)
          .backgroundColor('#36d')
          .type(InputType.Number)
          .onChange(value => {
            this.imageWidth = parseInt(value)
          })

        Button('缩小')
          .width(80)
          .fontSize(20)
          .type(ButtonType.Normal)
          .onClick(()=>{
            if(this.imageWidth>=10){
              this.imageWidth -=10
            }

          })
        Button('放大')
          .width(80)
          .fontSize(20)
          .onClick(()=>{
            if(this.imageWidth<=300){
              this.imageWidth +=10
            }
          })

        Slider({
          min:100,
          max:300,
          value:this.imageWidth,
          step:10
        })
          .width('90%')
          .blockColor('#25a')
          .trackThickness(10)
          .showTips(true)
          .onChange(value=>{
            this.imageWidth = value
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

5.3 效果展示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值