首页 > 其他分享 >鸿蒙 HarmonyOS学习日记 Day 2 界面开发、布局

鸿蒙 HarmonyOS学习日记 Day 2 界面开发、布局

时间:2024-03-21 09:58:18浏览次数:19  
标签:平铺 鸿蒙 width Image 语法 HarmonyOS 组件 Day 属性

文章目录


一、界面开发

1、代码书写方式

1、代码块在build()方法中书写,在右侧预览中查看效果

2、界面开发-布局思路

1、ArkUI(方舟开发框架)
    说明:是一套构建鸿蒙应用界面的框架
         构建页面的最小单位就是“组件”
    组件分类:
        (1)基础组件:文字、图片、按钮等
        (2)容器组件:Row行、Column列等
        
2、布局思路:
    先排版,再放内容

3、组件语法
    (1)容器组件:行Row、列Column
       容器组件(){
           //内容       
       } 
    (2)基础组件(参数):文字Text、图片img、按钮button

3、组件的属性方法

1、语法
    组件(){
            
    }.方法1(参数)
     .方法2(参数)
     
2、属性方法
    .width():宽度
    .height():高度
    .backgroundColor():颜色
    .fontSize():字体大小
    .fontWeight():字体粗细
    .fontColor():字体颜色
    .lineHeight(): 设置行高

4、文字溢出省略号、行高

1、文字溢出省略(设置文本超长时的显示方式)
    语法:.textOverflow({
    overflow: TextOverflow.XXX
    //说明
    //Ellipsis:隐藏
    //Clip:裁剪
    //MARQUEE:单行反复滚动
})
    注:需要配合.maxLines(行数)使用
    如:
        Text('全部配套资源领取方式如下:方式1:访问黑马官网可下载:www.itheima.com?bz方式2:关注黑马程序员公众号,回复关键词:鸿蒙NEXT').textOverflow({
            overflow: TextOverflow.Ellipsis        
        }).maxLines(2)

5、Image图片组件

1、语法
    Image(图片数据源) 支持网络图片资源和本地图片资源
    
2、示例
    Image('http.../logo.png') //网络图片
    Image($r('app.meida.文件名'))
    //注:图片文件应该存储在resources - base - media下

6、输入框与按钮

一、输入框
    1、语法
        TextInput(参数对象)
            .属性方法()
            
    2、参数对象
        2.1、placeholder 提示文本
    
    3、属性方法
        3.1、.type(inputType.xxx) 设置输入框type类型
        
二、按钮
    1、语法
        Button('按钮文本')

三、扩展:元素间间隙
    在Column()中编写{ space:间隙 }
    示例:
        Column({space:10})

四、综合实战 - 华为登录

1、代码
    @Entry
    @Component
    struct Index {
      @State message: string = 'Hello World';
      build() {
      Column({space: 5}){
        Image($r('app.media.app_icon')).width(50)
        TextInput({
          placeholder:'请输入用户名'
        })
        TextInput({
          placeholder:'请输入密码'
        }).type(InputType.Password)
        Button('登录').width('100%')
        Row({space:10}){
          Text('前往注册')
          Text('忘记密码')
        }
      }.width('100%')
        .padding(20)
      }
    }

五、svg图标

HarmonyOS 主题图标库 | icon素材免费下载 | HarmonyOS开发者
1、用处
    在界面中展示图标,拥有任意放大缩小不失真,可以改颜色的特点
    
2、获取
    可以在Harmony OS的图标库中获取

六、布局元素的组成

1、外边距和内边距
    1.1、外边距采用margin设置,内边距采用padding设置
    1.2、若想为不同方向设置不同的内边距,可以采用以下方法
    .padding({
        left:1,
        top:2,
        right:3,
        bottom:4            
    })
    
2、边框
    语法:
        .border({
            对象属性
                width:宽度
                color:颜色
                style:BorderStyl.样式        
        })
    若要对单独一条边设置
        .border({
            width:{
                left:1,
                right:2            
            }        
            ...
        })
        
3、组件圆角
    语法:
        .borderRadius(参数)
        或
        .borderRadius({
            topLeft: 5,
            topRight: 10,
            ...                    
        })

4、特殊型状的圆角设置
    4.1、正圆
        要求:宽高相同,圆角是宽或高的一半
    4.2、胶囊
        要求:宽度大于高度,圆角是高的一半

5、背景属性
    backgroundColor:背景色
    backgroundImage:背景图
    backgroundImagePosition:背景图位置
    backgroundImageSize:背景图尺寸
    
    语法:
        backgroundColor(Color.颜色)
        
        backgroundImage(网络或本地图片地址,背景平铺方式)
        背景平铺方式:
            ImageRepeat.属性
                Norepeat:不平铺,默认值
                X:水平平铺
                Y:垂直平铺
                XY:水平垂直均平铺
        示例:
            backgroundImage(地址, ImageRepeat.XY)

        backgroundImagePosition({ x:位置坐标, y:位置坐标})
        或
        backgroundImagePosition(Alignment.属性)
        属性:
            center:中央
            TopStart:左顶点
            TopEnd:右顶点
            BottomEnd:右下顶点
            BottomStart:左下顶点
        
        backgroundImageSize(宽高对象 或 ImageSize.属性)
        属性:
            Contain:等比例缩放背景图,使宽或高与组件尺寸相同
            Cover:等比例缩放背景图至完全覆盖组件范围
            Auto:默认,原图尺寸

二、单位问题

1、问题:背景定位默认单位为PX,相对不同设备的适应很困难
        而宽高默认单位为vp——虚拟像素,相对于不同的设备会自动转换,保证不同设备视觉一致
        可背景却只支持px
        
2、解决方案:
        函数 vp2px(数值) 将vp进行转换,得到px的数值

标签:平铺,鸿蒙,width,Image,语法,HarmonyOS,组件,Day,属性
From: https://blog.csdn.net/Lin_Zhong_/article/details/136887415

相关文章

  • LeetCode刷题记录——day2
    https://leetcode.cn/problems/product-of-array-except-self/description/?envType=study-plan-v2&envId=top-interview-150问题在于不使用除法并且空间复杂度为O(1),当第一次从头开始遍历时由于不知道后续数组元素是什么,所以无法得到答案,而如果当知道一个后续数组元素后,又回去更......
  • HarmonyOS 通知意图
    之前的文章我们讲了harmonyos中的基础和进度条通知那么今天我们来说说任何给通知添加意图通知意图简单说就是当我们点击某个通知如下图然后就会拉起某个应用就例如说我们某个微信好友发消息给我们我们点击系统通知可以直接跳到你们的聊天界面好回......
  • (day 13)JavaScript学习笔记(对象1)
    概述        这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习对象,主要是创建对象、对象属性、省略key、遍历对象属性、删......
  • Day05
    数据类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用弱语言语言Java的数据类型分为两大类基本类型(primitivetype)数值类型引用类型(referencetype)![](C:\Users\ASUS\Pictures\Screenshots\屏幕截图2024-03-10105408.png)www.baidu.com......
  • javaday3
    javaday3变量publicclassDemo06{publicstaticvoidmain(String[]args){inta=1;Stringname="xiangqian";charx='X';doublepi=3.14;}}publicclassDemo07{//类变量staticsta......
  • Python修炼秘籍--Python数值类型(Day3)
    数值类型(Day3)一、数字类型1、整数:int2、布尔值:bool3、浮点数:float4、复数:complex5、数值运算符二、数字类型转换1、整数转换函数2、浮点数转换函数3、eval(‘x’)函数三、常用数学函数1、pow(x,y)1、pow(x,y,z)2、max(arg1,arg2,…)3、min(arg1,arg2,…)4、divmod(x,......
  • Python修炼秘籍--Python语言基础(Day2)
    Python语言基础(Day2)一、数据与数据类型1、数据2、数值类型3、文本序列:字符串4、序列类型5、集合和字典类型二、对象与变量1、对象2、变量3、变量(标识符)命名4、关键字(保留字)三、编码与命名规范1、编码规范2、Python编码规范PEP83、命名规范一、数据与数据类型1、......
  • 软考备考复习笔记day2(校验码crc和海明码检错纠错)
    奇偶校验奇偶校验(ParityCodes)是通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验)。但该编码只能检错,但不能纠错。奇偶校验:码距为2。码距越大越容易纠错和检错仅检测出代码中奇数位数(奇数个0或1发生错误),不能发现偶数位数出错。奇数+偶数=奇数......
  • HarmonyOS鸿蒙开发常用组件详细说明(图片、文本、按钮、弹窗、进度条、文本框)
    常用组件一直会分享,虽然鸿蒙目前来没有多大发展,但不可否然以后发展,华为的技术是一大突破,存在即合理可以现在没有多大发展。但不可否定未来的发展。关注’猿来编码‘,微信订阅号,回复’组件‘,获取文章目录常用组件关注’猿来编码‘,微信订阅号,回复’组件‘,获取1、图片......
  • 鸿蒙App开的的另一种捷径——小程序组装
    如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中呢?本文将首先带你回顾小程序与鸿蒙开发的历史与现状,随后,我们将一同探索一种全新的小程序开发模式,一同见证......