首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • M4-R1

    • 一、简介

      • M4-R1简介
    • 二、快速上手

      • 01 OpenHarmony概述
      • 02 镜像烧录
      • 03 应用开发快速上手
      • 04 设备开发快速上手
    • 三、应用开发

      • 01 ArkUI

        • 1 ArkTS语言简介
        • 2 UI 组件-Row 容器介绍
        • 3 UI 组件-Column 容器介绍
        • 4 UI 组件-Text 组件
        • 5 UI 组件-Toggle 组件
        • 6 UI 组件-Slider 组件
        • 7 UI 组件-Animation 组件&Transition 组件
      • 02 资料获取

        • 1 OpenHarmony 官方资料
      • 03 开发须知

        • 1 Full-SDK替换教程
        • 2 引入和使用三方库
        • 3 HDC调试
        • 4 命令行恢复出厂模式
        • 5 升级App为system权限
      • 04 构建第一个应用

        • 1 构建第一个ArkTs应用-HelloWorld
      • 05 案例

        • 01 串口调试助手应用案例
        • 02 手写板应用案例
        • 03 数字时钟应用案例
        • 04 WIFI 信息获取应用案例
    • 四、设备开发

      • 1 Ubuntu环境开发

        • 01 环境搭建
        • 02 下载源码
        • 03 编译源码
      • 2 使用DevEco Device Tool 工具

        • 01 工具简介
        • 02 开发环境的搭建
        • 03 导入SDK
        • 04 HUAWEI DevEco Tool 功能介绍
    • 五、内核外设与接口

      • 01 指南
      • 02 设备树介绍
      • 03 NAPI 入门
      • 04 ArkTS入门
      • 05 NAPI开发实战演示
      • 06 GPIO介绍
      • 07 I2C通讯
      • 08 SPI通信
      • 09 PWM 控制
      • 10 串口通讯
      • 11 TF卡
      • 12 屏幕
      • 13 触摸
      • 14 Ethernet(以太网)
      • 15 M.2 硬盘
      • 16 音频
      • 17 WIFI & BT
      • 18 摄像头
    • 六、资料下载

      • 资料下载
  • M5-R1

    • 一、简介

      • M5-R1简介
    • 二、快速上手

      • 镜像烧录
      • 环境搭建
      • 下载源码
    • 三、外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
    • 四、资料下载

      • 资料下载

04 ArkTS入门

1. 创建项目

DevEco Studio,左上角找到File->New->Create Project

DevEco Studio创建项目

或者在欢迎界面直接点击创建

欢迎界面创建项目

由于后续我们需要把C语言操作命令行的程序通过NAPI的方式进行调用,所以下一步这里选择Native C++

注意

(注意:如果选的其他模板(Template),在"xxx\entry\src\main\ets\pages\Index.ets"下是无法链接到相关函数进行使用的!!!)

选择Native C++模板

如何按图示内容进行修改

项目配置修改

等待编译提示框提示创建完成即可

项目创建完成

如果希望在开发板上看到画面,左上角File->Project Structure...

项目结构菜单项目结构配置

按上图配置好以后点击OK,它会根据你本地的电脑自动生成相关的依赖文件

提示

如果打开的是别人的工程会遇到编译错误,就需要重新配置这一步即可

依赖文件生成

等待配置完成以后,将开发板的OTG接口与电脑连接好,点击右上角运行,即可在开发板中看到初始的"Hello World"画面

Hello World画面

2 基本语法介绍

以下就是模板默认生成的初始化代码,将以此为例给大家介绍一些常用的基本概念,具体的ArkTS语法请移步我们的北向开发教程,如果有Qt,LVGL等图形库开发经验的朋友熟悉起来会非常快。

默认模板代码

2-1 布局

布局有以下几种:

布局类型描述
线性布局 (Row/Column)使子元素在水平或垂直方向线性排列。
层叠布局 (Stack)使子元素堆叠显示。
弹性布局 (Flex)类似线性布局,但支持子组件按比例压缩或拉伸。
相对布局 (RelativeContainer)通过锚点规则让子元素相对于容器或其他子元素进行自由二维定位。
栅格布局 (GridRow/GridCol)通过栅格系统辅助定位,实现响应式布局。
媒体查询 (@ohos.mediaquery)根据设备类型或状态(如屏幕方向、宽高)动态修改应用样式和布局。
列表 (List)高效显示结构化、可滚动的数据。
网格 (Grid)强大的均分布局能力,可精确控制子组件所占行数和列数,按比例调整。
轮播 (Swiper)实现可循环滚动的轮播效果。

这里只介绍线性布局,分为竖直方向的线性布局Column和水平方向的线性布局Row。

线性布局类型

水平线性布局就是把组件放在同一排的不同列上,可以理解为图中的纵坐标不变横坐标变!

水平线性布局

同理,竖直方向的线性布局就是把组件放在同一列的不同排上,即图中的横坐标不变纵坐标变!

2-3 组件&演示

常见的组件有:

  • 按钮
  • 单选框
  • 切换按钮
  • 进度条
  • 文本显示
  • 文本输入
  • 自定义弹窗
  • 视频播放
  • XComponent

本教程先给大家介绍文本显示和按钮组件,已基本满足本教程的需求。

我们对代码文本做以下裁剪

代码文本裁剪

代码实现的功能是放置一个文本,大小为40,样式为粗体,在开发板中运行,效果如下:

文本显示效果

再修改代码:

代码修改

.width('100%')是让垂直布局的宽度占据整个屏幕的宽度,让文本位于左右居中

.height('100%')是让水平布局的高度占据整个屏幕的高度,让文本上下居中

居中文本效果

我们在已有的竖直方向上增加一个按键组件Button,再把常见属性的加上:

按钮组件代码
  • .width('60%'):设置按钮宽度为父容器的60%。使用百分比单位可以使按钮响应父容器尺寸变化。
  • .height(60):设置按钮高度为60像素。固定高度使按钮在不同设备上保持一致的视觉大小。
  • .fontSize(30):设置按钮文字大小为30像素。较大的字体使按钮文本更易读和突出。
  • .fontWeight(FontWeight.Medium):设置字体重量为中等粗细。这使文本看起来比正常粗细更突出,但又不会过于粗重。
  • .backgroundColor('#28A745'):设置按钮背景颜色为绿色(#28A745)。绿色通常表示积极、成功的操作。
  • .borderRadius(10):设置按钮边框圆角半径为10像素。圆角使按钮看起来更现代、友好。
  • .margin({ bottom: 20 }):设置按钮底部外边距为20像素。这在与下方元素之间创建视觉间隔。
  • .onClick(() => { this.message = 'WECOME!' }):设置按钮点击事件处理函数。当用户点击按钮时,会将message变量的值改为'WECOME!'。

点击按键前后的效果如下图所示:

按钮点击前效果按钮点击后效果
在 GitHub 上编辑此页
上次更新:
贡献者: fxx
Prev
03 NAPI 入门
Next
05 NAPI开发实战演示