鸿蒙界面开发

鸿蒙界面开发

鸿蒙开发环境准备

开发工具下载 HarmonyOS 官网 → 一探究竟 → DevEco Studio 下载

地址:https://developer.huawei.com/consumer/cn/

ArkTS 基础快速入门

ArkTS:是一门用于开发鸿蒙应用的编程语言。

编程语言:用来控制计算机工作的,可以告诉计算机我们要做的事情。

console.log(‘我说’, ‘Hello World’)

认识数据

编程语言的核心是处理 数据 三种常见的基础数据类型:

① string 字符串:描述信息

② number 数字:计算

③ boolean 布尔:判断 (真、假)

存储数据(变量、常量)

变量:专门用来存储数据的容器

let title: string

// let 变量名: 类型 = 值
let title: string = '加油,一起努力学习鸿蒙'
let price: number = 2.27
let isSelect: boolean = true

常量:用来存储数据 (不可变)

变量常量的注意事项(命名规则):

① 只能包含数字、字母、下划线、$,不能以数字开头

② 不能使用内置关键字或保留字 (比如 let、const)

③ 严格区分大小写

const 常量名: 类型 = 值
const PI: number = 3.1415926

常量不能修改

数组

数组:是一个容器,可以存储多个数据

let 数组名: 类型[] = [数据1, 数据2,...]
let names: string[] = ['小红', '小明', '大强'

注意:数组指定的类型和存储的数据类型要必须一致,否则会报错

获得数组元素: 数组名[索引]

let names: string[] = ['小红', '小明', '大强']
获得数组元素: 数组名[索引]
console.log('取出小明', names[1])

注意:索引号是从 0 开始的

1.如何将多个数据一次性存储到数组?

Ø let 数组名: 类型[] = [数据 1, 数据 2, 数据 3…]

2.如何取出数组某个元素的数据?

Ø 数组名[索引]

3.数组指定的类型和存储的数据类型不一致为发生什么?

Ø 会报错

index.ets let names: string[] = ['小红', '小明', '大强'] 

console.log('取出小明', names[1])

函数 - Function

函数:是可以被重复使用的代码块

作用: 函数可以把具有相同或相似逻辑的代码“包裹”起来,有利于代码复用。

函数基本使用

  1. 定义函数
function 函数名(){
	函数体
}
  1. 调用函数
函数名()

注意:先定义,后使用(变量、函数都是如此)

//实现重复三次输出5行五角星
function fn () {
console.log('五角星', '☆')
console.log('五角星', '☆☆')
console.log('五角星', '☆☆☆')
console.log('五角星', '☆☆☆☆')
console.log('五角星', '☆☆☆☆☆')
}
fn() // 第一次输出 5行五角星 
fn() // 第二次输出 5行五角星
fn() // 第三次输出 5行五角星

函数的完整用法

根据我们传入不同的数据,进行处理,返回处理后的结果。
在这里插入图片描述

function 函数名(形参1:类型, 形参2:类型 ...) {
编写代码对数据进行处理
return 处理后的结果
}

let 变量名: 类型 = 函数名(实参1, 实参2, ..)

注意:形参和实参个数要一致

箭头函数

箭头函数是比普通函数更简洁的一种函数写法

let 函数名 = (形参1: 类型, 形参2: 类型) => {
// 函数体
 // 1. 计算过程
 // 2. 返回结果
 return 计算的结果
}

函数名(实参1, 实参2)
//写一个buy函数,计算购买的总价 = 价格 * 数量
let buy = (price: number, weight: number) => {
let result: number = price * weight
return result
}

let apple: number = buy(2, 3)

普通函数和箭头函数,在后面开发中会有不同的使用场景, 所以两种语法都需要掌握。

对象

作用:用于描述一个物体的特征和行为。

对象:是一个可以储存多个数据的容器。

对象 - 定义和说明

  1. 通过 interface 接口约定 对象结构类型
interface 接口名 {
	属性1: 类型1
	属性2: 类型2
	属性3: 类型3
}

interface person {
	name: string
	age: number
	weight:number
}
  1. 定义对象并使用 (通过 . 访问)
let person: Person = {
name: '靓仔斌',
age: 18,
weight: 130
}

console.log('名字', person.name)
console.log('年纪', person.age)
console.log('体重', person.weight)

总结

  1. 对象是什么?作用是什么?

    是一个容器,可以保存不同类型数据 可以用来描述物体特征和行为。

    1. 如何定义对象?

    先定义接口,再基于接口约定对象结构类型,定义对象

    interface person {
    	name: string
    	age: number
    	weight:number
    }
    
    let person: Person = {
    name: '靓仔斌',
    age: 18,
    weight: 130
    }
    
  2. 如果访问对象属性?

    对象.属性名

    console.log('名字', person.name)
    

对象 - 方法

方法作用:描述对象的具体行为

  1. 约定方法类型
interface 接口名称 {
方法名: (参数:类型) => 返回值类型
}
interface Person{
dance: () => void
sing: (song: string) => void
}
  1. 添加方法(箭头函数)
let ym: Person = { 
	dance: () => {
	  conslose.log('我来跳个舞')
	},
	sing: (song: string) => {
	  console.log('杨幂说', '我来唱首', song)
	}
}
ym.dance()
ym.sing('爱的供养')
  1. 如何在对象里面添加方法?

    约定方法类型 → 添加方法(箭头函数)

    1. 如何调用对象方法?

    对象名.方法名(实参)

联合类型

联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据。

语法:let 变量: 类型 1 | 类型 2 | 类型 3 = 值

  1. 如何让变量,可以存储多种类型的数据?

    联合类型:是由多个类型联合组合成的数据类型。

    let judge: number | string = 100
    judge = 'A'
    
  2. 如何把变量值限定在一组数据范围内选择?

    let gender: 'man' | 'woman' | 'secret'
    

枚举类型

枚举类型是一种特殊的数据类型,约定变量 只能在一组数据范围内选择值。
在这里插入图片描述

  1. 定义枚举类型(常量列表)

    enum 枚举名 {
    	常量1 = 值,
    	常量2 = 值,
    	......
    }
    enum ThemeColor {
    	Red = '#ff0f29',
    	Orange = '#ff7100',
    	Green = '#30b30e'
    }
    
  2. 使用枚举类型,约束变量

    let color: ThemeColor = ThemeColor.Red
    console.log('主页颜色', color)
    

取值从枚举中(常量列表中)取

  1. 枚举类型有什么特点?

    枚举是一种特殊的数据类型 约定变量也只能在一组数据范围内选择,提高可维护性

    1. 枚举类型怎么使用?

    声明枚举类型 → 使用枚举数据

界面开发起步

开发工具:仍然是 DevEco Studio

学习界面开发:build 里面写代码,预览器 看效果

界面开发-布局思路

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

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

组件分类:

① 基础组件:界面呈现的基础元素。

 如:文字、图片、按钮等。
基础组件(参数)

② 容器组件:控制布局排布。

如:Row 行、Column 列等。
容器组件() {
// 内容
}

布局思路:先排版,再放内容。

注意:build有且只能有一个根元素,且是容器组件

build() {
	Column () {
		Text('小说简介')
		Row () {
			Text('都市')
			Text('生活')
			Text('情感')
			Text('男频')
		}
	}
}

组件的属性方法

需求:美化组件外观效果 → 组件的属性方法
在这里插入图片描述

组件() {}
	.属性方法1(参数)
	.属性方法2(参数)
	.属性方法3(参数)
	……
Text('小说简介')
	.height(40)
	.fontSize(20)
	 ……

字体颜色

  1. 设置文字的颜色?

    fontColor(颜色值) 色值是通用的

  2. 色值写法?

    Text('小说简介')
    	.fontColor(Color.Orange)
    	.fontColor('#8fbce7')
    
    颜色值说明具体演示
    枚举颜色 Color.颜色名Color.Red、Color.Pink
    ② #开头的16进制‘#8fbce7’ 【设计图会标注
  3. 构建界面思路:排版 → 内容 → 美化

文字溢出省略号、行高

  1. 文字溢出省略 (设置文本超长时的显示方式)

    语法:.textOverflow({ overflow: TextOverflow.XXX })

    注意:需要配合 .maxLines(行数) 使用

    1. 行高

    语法:.lineHeight(数字)

Text('方舟...')
	.textOverflow({
	overflow: TextOverflow.Ellipsis
  })
 .maxLines(2)
 .lineHeight(30)

总结

1、设置文字溢出省略号 ?

① .textOverflow({ overflow: TextOverflow.Ellipsis })

② .maxLines(数字) 控制最大行数

2、设置行高?

.lineHeight(数字)

Image 图片组件

Image 图片组件 作用:界面中展示图片

语法:Image(图片数据源) 支持 网络图片资源 和 本地图片资源

① 网络图片

Image(‘https://www.itheima.com/images/logo.png’)

② 本地图片

Image( $r(‘app.media.文件名’) )

输入框 与 按钮

需求:实现登录或注册的排版 → 输入框 和 按钮组件

TextInput(参数) 
	.属性方法()
Button('按钮文本')
  1. 参数:placeholder 提示文本

    TextInput({ 
    	placeholder: '占位符文本' 
    })
    
  2. 属性:type(InputType.xxx) 设置输入框 type 类型

    type 值解释说明
    ① Normal基本输入模式,无特殊限制
    ② Password密码输入模式

如何调整组件之间的距离?

给外层容器组件加 { space: 数字 }

Column({ space: 20})  {...}

### 关于 HarmonyOS 界面开发与视野联行眼镜 在 HarmonyOS 的界面开发过程中,开发者可以通过官方文档以及第三方设备的支持来实现特定硬件的功能集成。以下是关于如何针对视野联行眼镜进行界面开发的相关说明。 #### 1. 安装 HarmonyOS SDK 和配置开发环境 为了开始 HarmonyOS 应用程序的开发工作,首先需要完成开发环境的搭建。这一步骤包括安装 HarmonyOS SDK 并将其适配到支持的 IDE 中[^1]。通常情况下,推荐使用 DevEco Studio 进行开发,因为它提供了完整的工具链和支持功能。 #### 2. 创建 HarmonyOS 项目 一旦开发环境准备就绪,在 DevEco Studio 中创建一个新的 HarmonyOS 项目即可。通过项目的模板选择,可以选择适合的应用场景并快速构建基础框架。 #### 3. 视野联行眼镜的 SDK 或 API 支持 对于像视野联行眼镜这样的外部设备,其具体功能调用可能依赖于厂商提供的专用 SDK 或 API 接口。这些接口一般会提供详细的文档描述如何与其硬件交互。如果该设备已经兼容 HarmonyOS,则可以直接利用 HarmonyOS 提供的能力对其进行控制和数据传输[^2]。 然而,由于具体的视野联行眼镜 SDK 及其对应的 API 文档并未被提及在此前的内容中,因此建议访问以下资源获取更多信息: - **厂商官网**:查看是否有专门面向 HarmonyOS 的开发指南。 - **HarmonyOS 开放实验室 (OpenLab)**:这里可能会有更多关于第三方设备接入的信息。 #### 4. 使用 Java/Kotlin 实现基本 UI 组件 下面是一个简单的代码片段展示如何定义一个按钮组件: ```java @DefaultComponent public class MainAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); Button button = new Button(this); button.setText("点击连接眼镜"); button.setClickedListener(component -> { // 调用眼镜相关API逻辑 }); LayoutConfig layoutConfig = new LayoutConfig(FlexAlign.CENTER, FlexAlign.CENTER); DirectionalLayout directionalLayout = new DirectionalLayout(getContext()); directionalLayout.addComponent(button); super.setUIContent(directionalLayout); } } ``` 此代码展示了如何在一个 Ability Slice 中添加一个按钮,并设置点击事件处理函数以便后续扩展为实际的眼镜操作命令。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'撒野奔跑.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值