Harmony NEXT开发ArkUI框架速成二基础语法

前端转鸿蒙必看篇:ArkUI的布局 组件内容和组件内容区不一定匹配,比如设置了固定的width和height,此时组件内容的大小就是设置的width和height减去padding和border值,但文本内容则是通过文本布局引擎测算后得到的大小,可能出现文本真实大小小于设置的组件内容区大小。相对布局是在二维空间中的布局方式,不需要遵循线性布局的规则,布局方式更为自由。组件内容区(黄色方块):组件内容区大小为组件区域大小减去组件的 border 值,组件内容区大小会作为组件内容(或者子组件)进行大小测算时的布局测算限制。 阅读详情

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员成长那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!


1.ArkUI基础语法

1.1 ArkTS页面组成

在创建的时候,可以创建Page也可以直接创建ArkTS,Page其实也是一个ArkTS,只是自带了一些装饰器和对应的结构。

1.直接创建Page

下面这个就是右键-page-Empty Page即可

内容如下所示:

@Entry //入口
@Component //组件
struct MyPage1 {
  //自定义变量 @State监听变量状态
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {//相对布局
      Text(this.message)//文本组件
        .id('MyPage1HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

2.创建ArkTS文件

直接创建ArkTS文件,就是一个空白的ets文件,需要自己写代码,代码如下所示:

@Entry //入口
@Component //自定义组件
struct MyPage2{ //结构体
  //自定义变量 状态监听 改变的话组件也会更改
  @State num:number=0;
  build() {
    Column(){// 行、列 布局
      //按钮
      Button("点击次数="+this.num).onClick(()=>{//按钮点击事件
        this.num++;//自增1
      }).fontSize(25).width("80%").padding(10)//样式
    }.width("100%")
  }
}

效果如下所示:

你会了吗,不会就赶紧关注、私聊我!

1.2 ArkUI基础组件

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

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

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

常用基础组件:

组件作用描述
Text显示文本
Image显示图片
Button按钮

常用的基础样式属性:

示例:

@Entry //入口
@Component //自定义组件
struct MyPage2{ //结构体
  //自定义变量 状态监听 改变的话组件也会更改
  @State num:number=0;
  build() {
    Column(){// 行、列 布局
      //按钮
      Button("点击次数="+this.num).onClick(()=>{//按钮点击事件
        this.num++;//自增1
      }).fontSize(25).margin(10).width("80%").padding(10)//样式

      Text("程序员Feri").padding(10).margin(10).textAlign(TextAlign.Start)
      Row(){
        Text("Harmony OS").backgroundColor(Color.Gray).padding(5).margin(5)
        Text("Open Harmony").backgroundColor(Color.Pink).padding(5).margin(5)
        Text("搞钱专业户").backgroundColor(Color.Orange).padding(5).margin(5)
      }
    }.width("100%")
  }
}

效果:

当然,我们也可以为组件的字体进行各种的样式设置,常用的字体样式设置如下所示:

比如可以对刚刚的内容进行字体相关的属性设置,代码如下所示:

 Text("程序员Feri").fontColor(Color.Red).fontSize(30).
      textAlign(TextAlign.Start).fontWeight(FontWeight.Bolder)
        .padding(10).margin(10).width("100%")
      Row(){
        Text("Harmony OS").backgroundColor(Color.Gray).padding(5).margin(5)
        Text("Open Harmony").backgroundColor(Color.Pink).padding(5).margin(5)
        Text("搞钱专业户").fontColor(Color.White).backgroundColor(Color.Orange).padding(5).margin(5)
      }

效果如下所示:

1.3 ArkUI中的尺寸单位

1. px :

物理像素,也叫设备像素,设备实际拥有的像素点(出场设置、分辨率单位) 问题:如果用 px 作为宽高单位,又想保证不同显示能力的设备,视觉效果一样大, 就需要针对每个设备单独编码,设置尺寸,非常麻烦。 能不能有个单位,帮我们自动根据显示能力,来进行转换大小,保证多设备视觉效果一致呢?

2. vp :

virtual pixel 虚拟像素 【推荐使用】

● 会根据不同设备的显示能力,自动进行转换成对应 px 物理像素,保证不同设备视觉一致

● 当数值不带单位时,默认单位 vp

● 基于目前预览器和常规手机的显示能力,vp 和 px 的对应关系,大约为 3 倍,1vp ≈ 3px (超清屏手机)

好了,夜已深,本篇就到这里啦,关注我,跟着我轻松拿下Harmony OS开发!

Harmony NEXT 开发-ArkUI框架速成一ArkUI概述和特点 自定义能力是UI开发框架提供给开发者对UI界面进行开发和定制化的能力。包括:自定义组合、自定义扩展、自定义节点和自定义渲染。可以关注我,后续这些都会一一更新,新的一年加油! 阅读详情

相关推荐

鸿蒙next开发:ArkUI组件(Image)

在HarmonyOS中,Image组件是用于显示图像文件的UI组件。

Aym88的博客 2127

ArkUI 基本语法

Text(‘HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言。带来简洁,流畅,连续,安全可靠的全场景交互体验。方舟开发框架(简称:ArkUI),是一套 构建HarmonyOS应用 界面 的框架。○ rgba(r, g, b, a),a 为透明度,取值范围 0 ~ 1。● 十六进制(HEX)颜色,例如:'#ffffff’或“#fff”● 颜色枚举值:Color.xx,例如:Color.Pink。● rgb() 或 rgba()颜色。fontColor 字体颜色。

Asia52的博客 998

鸿蒙ArkUI-X框架开发:【编译】

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

m0_62167422的博客 1411

【鸿蒙开发】第七章 ArkTS语言UI范式-基础语法(一)

自定义组件即开发者根据自己的业务要求定义组件,代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。可组合:允许开发者组合使用系统组件、及其属性和方法。可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用。数据驱动UI更新:通过状态变量的改变,来驱动UI的刷新。@Entry@Componentbuild() {// HelloComponent自定义组件组合系统组件Row和TextRow() {

Yvan 2729

STM32CubeIDE之SHT3X温湿度传感器移植HAL库

有了前面的OLED的学习,这个学习起来也很快。 分以下几步走 1.你要有个温度传感器,SHT3X这个型号的,因为我要讲这个 2.你要有个STM32开发板(我用的是STM32L431RCT) 3.顺便找台电脑下载一个STM32CubeIDE 4.简单的找一个SHT3X的驱动,我是去某宝嫖的,一般卖这个的都有,这个驱动分两个文件,是.c和.h的,我直接把这两个放在下边 读了我上一篇的人,看这个应该很熟悉吧,一样的套路,学习方法是一样的,你就照搬就行 下面是sht3x.c的原文档,里面有个CRC..

qq_47736089的博客 2314

UE4-(蓝图)第五十五课图片九宫格拉伸的使用

一、为什么使用九宫格拉伸 在UI布局的时候,有时候使用的图片与我们要制作的UI大小有差距,如果图片是普通方式直接拉伸很可能造成图片四个角上的效果与原图片差距太大甚至是变形,这时候使用九宫格模式拉伸,可以保持图片四个角上的样式不发生改变,只对中间区域拉伸。 原始 正常拉伸: 九宫格拉伸: 二、图片参数设置 1.新建一个UI 控件蓝图,在CanvasPanel下拖入一个Image,选择一张...

Stone的博客 7889

鸿蒙 入门——ArkUI自定义组件的基础语法(一)

定义一个被@Component 装饰器修饰的struct类型的自定义组件名在这个自定义组件的代码块内实现build函数。

最美不过,心中有梦,身旁有你! 2129

华为2024机考真题集合

2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以 2,所得的结果就是中位数。在实际考试中会随机抽三道题目进行考察,其中两道100分卷题和一道200分卷题,总共400分。幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。1.众数是指一组数据中出现次数量多的那个数,众数可以是多个。

qq_25360769的博客 5093

40.HarmonyOS鸿蒙系统 App(ArkUI)实现页面跳转与返回

2.右键page添加第二个页面,设置page2,点击finish。page2.ets按钮触发事件。

Txwtech 2135

车辆横向控制MPC实战:从‘老王模型’到CasADi求解的保姆级避坑指南

本文详细解析了车辆横向控制MPC的实战应用,从经典动力学模型选择到CasADi求解器的优化配置,提供了一套完整的避坑指南。重点介绍了车辆动力学模型的验证要点、CasADi环境的高效配置技巧以及MPC问题建模的核心要素,帮助开发者快速实现稳健的横向控制方案。

weixin_42524499的博客 346

【突变检验方法一】MATLAB实现Pettitt突变检验

MATLAB实现Pettitt突变检验及贝叶斯突变检测等

WW、forever的博客 1万+

Harmony NEXT开发之ArkUI栅格布局

栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。主要优势包括:提供可循的规律:栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数,可以方便地对页面元素进行定位和排版。统一的定位标注:栅格布局可以为系统提供一种统一的定位标注,保证不同设备上各个模块的布...

weixin_43932886的博客 902

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1388

Harmony NEXT开发之ArkUI常用组件

删除按钮Button组件通常用于触发某些操作,可以绑定onClick事件来响应点击操作后的自定义行为。})在用户登录/注册页面,使用按钮进行登录或注册操作。// xxx.ets@Entry@Componentbuild() {Column() {// 需要执行的操作})

鸿蒙布道师 968

YOLOv11 改进 - 特征融合 | RepGFPN重参数化特征金字塔网络 ,实现高效多尺度特征交互与融合

本文介绍了DAMO - YOLO目标检测方法及其相关技术在YOLOv11中的结合。DAMO - YOLO扩展了多项新技术,如MAE - NAS搜索检测主干网络、Efficient - RepGFPN构建检测neck等。在neck设计上,针对原始GFPN存在的问题,提出Efficient - RepGFPN,包括对不同尺度特征使用不同通道数、删除Queen - Fusion中额外上采样操作、改进特征融合方式等。我们将相关模块集成进YOLOv11,替换部分模块。

魔改工程师的博客 934

算法 | 基于灰狼优化算法的无人机三维路径规划方法研究(附matlab代码)

针对复杂环境下的无人机三维路径规划问题,本文提出一种基于灰狼优化算法(Grey Wolf Optimizer, GWO)的解决方案。通过模拟灰狼群体的社会等级与协作捕猎机制,结合动态参数调整策略,优化路径长度与避障性能。实验表明,相较于粒子群优化(PSO)和遗传算法(GA),GWO算法在收敛速度与路径成本上分别提升约25%和18%,且在三维城市地形中表现出更强的避障鲁棒性。本文提供完整的MATLAB代码实现,为无人机自主导航提供理论与技术支撑。

尘世冰封的专栏 287

Harmony NEXT开发之ArkUI组件导航和页面路由

Navigation通过事件提供自定义转场动画的能力,通过如下三步可以定义一个自定义的转场动画。构建一个自定义转场动画工具类CustomNavigationUtils,通过一个Map管理各个页面自定义动画对象CustomTransition,页面在创建的时候将自己的自定义转场动画对象注册进去,销毁的时候解注册;实现一个转场协议对象。

鸿蒙布道师 1457

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

一文彻底搞清楚Harmony NEXT的ArkUI

在移动开发领域,长期以来存在着两大阵营:iOS和Android。为了满足不同平台的需求,开发者往往需要分别编写两套代码,这无疑增加了开发成本和维护难度。在这种背景下,跨平台UI框架应运而生,旨在实现“一套代码,多平台运行”。目前主流的跨端开发框架:React Native由Facebook开发Flutter是由Google公司开发的uni-app 是国内的DCloud开发的ArkUI 是华为推出一款跨平台Weex是由阿里巴巴开发的跨平台。

程序员Feri 1196

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Harmony NEXT开发之ArkUI相对布局

相对布局在应用的开发过程中,经常需要设计复杂界面,此时涉及到多个相同或不同组件之间的嵌套。如果布局组件嵌套深度过深,或者嵌套组件数过多,会带来额外的开销。如果在布局的方式上进行优化,就可以有效的提升性能,减少时间开销。RelativeContainer为采用相对布局的容器,支持容器内部的子元素设置相对位置关系,适用于界面复...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 968

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Harmony NEXT开发之创建自定义组件

以下示例展示了自定义组件的基本用法。@Componentbuild() {// HelloComponent自定义组件组合系统组件Row和TextRow() {// 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!})注意如果在另外的文件中引用该自定义组件,需要使用export关键字导出,并在使用的页面import该自定义组件。

鸿蒙布道师 1535

我是怎么通过Harmony NEXT 开发搞钱的

最近2个月除了工作就是在搞鸿蒙开发的东西,最终结果不负自己的努力,最近通过鸿蒙开发搞得副业终于开始进账了,所以这篇文章就简单分享一下,我最近怎么搞鸿蒙搞钱的,希望可以给你一些帮助!

程序员Feri 2196

Harmony OS NEXT初学笔记

全称 TypeScript (简称TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。安装 有一点需要注意,IDE 仅支持特定版本的 Node.js,如果有安装比较高的或者较低的 版本 建议大家先卸载本地安装的 Node.js,通过 IDE 重新安装支持的版本,我自己安装的低版本也会报错。一种关系型数据库,以行和列的形式存储数据,广泛用于应用中的关系型数据的处理,包括一系列的增、删、改、查等接口,开发者也可以运行自己定义的SQL语句来满足复杂业务场景的需要。

我喜欢仙女儿 1107

【鸿蒙next开发】ArkUI框架:ArkTS组件-SubHeader

本文详细介绍了鸿蒙HarmonyOS SubHeader组件的使用方法和配置参数。

m0_73088370的博客 1103

Harmony NEXT应用开发入门:从零构建首个ArkUI应用

学习本章节能够快速构建出首个HarmonyOS应用,掌握应用程序包结构、资源文件的使用。

鸿蒙布道师 1211
上一篇: Harmony NEXT 开发-ArkTS语言速成六
下一篇: 一文带你彻底搞清楚通义灵码 2.0 下的 AI 程序员的智能化编码
编程百晓君
博客等级 码龄2年 469粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值