二、ArkUI界面设计1(组件-样式-基础)

240922

在build里面写代码,预览器看效果。

build 函数中只能有一个根节点,并且这个根节点必须是一个容器组件(里面可以放其他组件,例如Column)。

1. ArkUI基本语法

方舟开发框架(ArkUI),是一套构建HarmonyOS应用界面的框架。

构建页面的最小单位就是组件

组件名(参数) {
 内容
}
 .属性1()
 .属性2()
 .属性N()

2. 常用系统组件

2.1 系统组件
组件 描述
Text 显示文本
Image 显示图片
Column 列,内容垂直排列
Row 行,内容水平排列
Button 按钮

例:小说简介

示例代码

@Entry
@Component
struct Index {
  build() {
    // 先布局,考虑垂直水平等
    // 再放内容,考虑所需组件
    // 最后美化样式,考虑属性方法
    Column(){
      Text('小说简介')
      Row(){
        Text('都市')
        Text('生活')
        Text('情感')
        Text('男频')
      }
    }
  }
}

2.2 通用属性
属性 描述
width 宽度
height 高度
backgroundColor 背景颜色

将2.1所列例子添加属性方法

示例代码

@Entry
@Component
struct Index {
  build() {
    // 先布局,考虑垂直水平等
    // 再放内容,考虑所需组件
    // 最后美化样式,考虑属性方法
    Column(){
      Text('小说简介')
        //宽度100%后,内容居左对齐
        .width('100%')
        .height(40)
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
      Row(){
        Text('都市')
          .width(50)
          .height(30)
          .backgroundColor(Color.Orange)
        Text('生活')
          .width(50)
          .height(30)
          .backgroundColor(Color.Pink)
        Text('情感')
          .width(50)
          .height(30)
          .backgroundColor(Color.Yellow)
        Text('男频')
          .width(50)
          .height(30)
          .backgroundColor(Color.Gray)
      }
        .width('100%')
    }
  }
}

2.3 尺寸单位
2.3.1 px

px:物理像素,也叫设备像素,设备实际拥有的像素点。(出厂设置、分辨率单位)

问题:如果使用px作为宽度和高度的单位,但又希望在不同显示能力的设备上保证视觉效果一致,就需要针对每个设备单独进行编码和设置尺寸,非常麻烦。

那么,是否存在一种单位,能够自动根据设备的显示能力来转换大小,从而保证在多设备上视觉效果的一致性呢?

2.3.2 vp

vp:viewport pixel 视口像素

  • 会根据不同设备的显示能力,自动进行转换成对应px物理像素,保证不同设备视觉一致。
  • 当数值不带单位时,默认单位vp。(如上述代码中width(50),其中50单位为vp)
  • 基于目前预览器和常规手机的显示能力,vp和px的对应关系大约为1:3,1vp≈3px(超清屏手机?)

1080px - 360vp

对比效果示例代码

@Entry
@Component
struct Index {
  build() {
    Column(){
      Text('vp测试')
        .width(100)
        .height(100)
        .backgroundColor(Color.Gray)
        .fontWeight(FontWeight.Bold)
      Text('px测试')
        .width('100px')
        .height('100px')
        .backgroundColor(Color.Pink)
        .fontWeight(FontWeight.Bold)
    }
  }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值