HarmonyOS4.0 ArkUI组件

目录

简介

搭建开发环境

ArkUI基础组件

Image组件

 Text组件

 TextInput

 Button

Slider


简介

HarmonyOS 4.0的ArkUI组件是一套UI开发框架,提供开发者进行应用UI开发时所必须的能力。在ArkUI中,组件是界面搭建与显示的最小单位,开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。

在ArkUI中,组件根据功能可以分为五大类:基础组件、容器组件、媒体组件、绘制组件、画布组件。这些组件的功能如下:

  1. 基础组件:是视图层的基本组成单元,包括Text(文本)、Image(图片)、TextInput(文本输入)、Button(按钮)、LoadingProgress(加载进度)等。
  2. 容器组件:用于封装和布局,比如ScrollView(滚动视图)和ListView(列表视图)等。
  3. 媒体组件:用于播放音频和视频,比如Video(视频)和Audio(音频)等。
  4. 绘制组件:用于自定义绘制图形,比如Canvas(画布)等。
  5. 画布组件:用于多态组件的适配,可以跨平台使用。

在ArkUI中,还支持多种布局方式,如Flex布局、Grid布局等。同时,为了提升用户体验,ArkUI还提供了丰富的动画效果和自定义动画能力。此外,ArkUI还支持多种绘制能力,以满足开发者绘制自定义形状的需求,支持图形绘制、颜色填充、文本绘制、图片绘制等。

搭建开发环境

下载安装软件DevEco Studio

因为下载安装软件官方已经有很详细的文档介绍,点击下方链接根据官网提示完成开发环境搭建

下载与安装软件-快速入门-入门-HarmonyOS应用开发

软件安装完成,开发环境也配置完成后,创建一个新的工程,选择“Empty Ability”模板,编辑名称等相关信息或者保持默认,点击下一步即可

 工程创建完成后,点击右侧的Previewer按钮,预览我们的项目,可以看见,第一个项目Hello Word界面就出来了

使用鸿蒙系统的手机来测试更贴合实际,但因为博主没有钱买华为,所以只能使用模拟器,点击右上角的devices,选择Device Manager

注意:电脑性能不是很好的小伙伴,不建议安装这个模拟器,初学使用预览功能足矣

 然后点击phone再点击New Emulator 

选择Phone-x86-api9,下载虚拟机,下载时间会有点久

 下载完成后启动虚拟机,桌面上就会有一部鸿蒙系统的手机用于测试

ArkUI基础组件

Image组件

用于在页面中插入图片的组件

1.网络图片

打开项目路径下的Index,将hello wrod部分去掉,代码换成👇面的,可以看见,预览窗口出现了一个图片。Image()中的URL是我在网上随意找的一个图片地址,这是Image组件的用法之一,可以渲染一个

@Entry
@Component
struct Index {build() {Row() {Column() {Image('https://ts1.cn.mm.bing.net/th/id/R-C.f5bba551c5fde389168f0ce9e2201145?rik=XapyqJ%2b6fXYCcw&riu=http%3a%2f%2fwww.kuaipng.com%2fUploads%2fwater%2ftext%2f2017%2f06-07%2fgoods_water_6525_698_698_.png&ehk=%2fQlYmSlVMMarF6BUBbl11xoDiHtfK0PHpSE85FRcP0s%3d&risl=&pid=ImgRaw&r=0').width(300)}.width('100%')}.height('100%')}
}

2.本地图片 

本地图片引用只需将图片放在media文件夹中,然后通过 $r('app.media.图片名称') 进行引用

 Text组件

文字组件,用于插入文本内容

我们可以直接通过 Text('文字内容')  直接在页面中插入文本

但是这样子的文本是写死的,应用如果需要面向国际,有切换语言的需求,那么就需要使用Resource格式,读取本地资源,如下图,zh_CN是中国汉字,因此在stirng.json中加入

    {"name": "width_label","value": "图片宽度:"}

 那么en_US自然是将value换成英文解析

    {"name": "width_label","value": "Image Width:"}

base=>element=>下的是默认,当en_us和zh_CN都没找到合适的解析,就会在这里寻找匹配的键值,因此这里的string.json也要加上,这里随意加一种语言的就好

然后将 Text('文字内容') 换成 Text($r('app.string.name'))

 点击预览窗口上的 ... 将语言切换成en_US,可以看见,文字内容已经变成我们刚刚设置的英文解析

 TextInput

输入框组件

有两个可选参数,来设置提示词和默认内容,并且可以通过.type(InputType.Password)来设置成密码框模式。下面代码中,演示通过onChange在输入框内容改变时赋值给imagewidth达到设置图片宽度功能

@Entry
@Component
struct Index {@State imageWidth: number = 150build() {Row() {Column() {Image($r('app.media.icon')).width(this.imageWidth)Text($r('app.string.width_label')).fontSize(30)// 输入框未输入内容时的提示词TextInput({ placeholder: '请输入手机号:' }).width(300).backgroundColor('#36D')// 输入框带默认内容TextInput({ text: '123456' }).width(300).backgroundColor('red')// 输入框带默认内容TextInput({ text: 'admin' }).width(300).type(InputType.Password).backgroundColor('blue')//使用onChange做一个互动,输入数值来调整图片宽度TextInput({ placeholder: '请输入宽度:' }).width(300).backgroundColor('#36D').onChange(value=>{this.imageWidth = parseInt(value)})}.width('100%')}.height('100%')}
}

 Button

按钮组件,直接通过 Button('按钮名称') 添加按钮

我们示例通过添加两个按钮来对图片进行放大缩小

        Button('缩小').width(80).fontSize(20).onClick(()=>{this.imageWidth -= 10})Button('放大').width(100).fontSize(30).onClick(()=>{this.imageWidth += 10})

在onClick中,当按钮被点击时对图片宽度进行修改

Slider

滑块组件

滑块中的属性

  1. min::最小值
  2. max:最大值
  3. value:当前值,下面案例这里直接把图片初始宽度赋值给它
  4. step:滑块步长
  5. showtips 是否显示百分比
        Slider({min: 100,max: 300,value: this.imageWidth,step: 10}).width('90%').showTips(true).trackThickness(6).onChange(value => {this.imageWidth = value})

 最后也是在onChange中将value赋值给图片宽度,达到拖动滑块改变图片大小的效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/207843.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Normalizing Kalman Filters for Multivariate Time Series Analysis

l l l means latent state,LGM means ‘linear Gaussian state space models’ 辅助信息 作者未提供代码

pip包管理工具

pip 是 Python 包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。 Python 2.7.9 或 Python 3.4 以上版本的python都自带 pip 工具 1. 配置pip国内镜像 pip安装的包都存在于外国的服务器上,速度会非常慢,可以给pip配置国内…

优彩云采集器最新版免费下载,优彩云采集器免费

随着网络时代的发展,SEO(Search Engine Optimization,搜索引擎优化)已经成为网站推广和营销的关键一环。在SEO的世界里,原创内容的重要性愈发凸显。想要做到每天更新大量原创文章,并不是一件轻松的事情。优…

排序算法:n个0~1000之间的整数,将他们从大到小排序

上榜理由: 如果没见过这种排序题,可能首先想到的就是常用的排序算法,比如快速排序,归并排序,那如果输入的n足够大,时间复杂度肯定比较高。其实题目0-1000的范围是一个题眼,所以一定有更优的排序…

国内哪个超声波清洗机品牌比较好?质量好超声波清洗机总结

近年来超声波清洗机可以说是非常火爆,可以清洗化妆刷、眼镜、牙套等等一些小物件,大物件物品可以入手大型超声波清洗机,总之现在超声波清洗机已经衍生到可以在家使用,不再是在眼镜店看到它的身影或者是一些工业领域上,…

FL Studio2024重磅更新 带你了解FL21.2最新版本功能

FL Studio2024是功能强大的音乐制作解决方案,使用旨在为用户提供一个友好完整的音乐创建环境,让您能够轻松创建、管理、编辑、混合具有专业品质的音乐,一切的一切都集中在一个软件中,只要您想,只要您需要,它…

clip-path,css裁剪函数

https://www.cnblogs.com/dzyany/p/13985939.html clip-path - CSS:层叠样式表 | MDN 我们看下这个例子 polygon里有四个值分别代表这四个点相对于原图左上方的偏移量。 裁剪个五角星

六、ZooKeeper Java API操作

目录 1、引入maven坐标 2、节点的操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端框架 Curator ,解决了很多Zookeeper客户端非常底层的细节开发工作 。 Curator包含了几个包:

ansible模块

目录 一、ansible的command模块 1.ad-hoc 2.playbook 3.command模块 二、ansible的shell模块 1.shell模块帮助 2.shell模块支持的参数和解释 3.简单试验 4.批量远程执行脚本 三、script模块 1.script模块帮助 2.shell模块支持的参数和解释 3.实践 四、ansible文件…

【学习记录】从0开始的Linux学习之旅——应用开发(helloworld)

一、概述 Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。本文主要讲述如何在linux系统上进行应用开发。 二、概念及原理 应用程序通过系统调用与…

Jmeter工具+ant+jenkins实现持续集成

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具,并配置好环境变量;参考: jmeter默认保存的是.jtl格式的文件,要设置一下bin/jmeter.properties,文件内容,保存jmeter.save.saveservice.output_f…

【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)

漏洞简介 ownCloud owncloud/graphapi 0.2.x在0.2.1之前和0.3.x在0.3.1之前存在漏洞。graphapi应用程序依赖于提供URL的第三方GetPhpInfo.php库。当访问此URL时,会显示PHP环境的配置详细信息(phpinfo)。此信息包括Web服务器的所有环境变量&a…

3.3 路由器的远程配置

实验3.3 路由器的远程配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施(一)、配置通过Telnet登录系统1.RA的基本配置2.RB的基本配置3.在RA上配置Telnet用户登录界面 (二)、配置通过STelnet登录系统1.RA的基本配…

MySQL的系统信息函数

系统信息函数让你更好的使用MySQL数据库 1、version()函数 查看MySQL系统版本信息号 select version();2、connection_id()函数 查看当前登入用户的连接次数 直接调用CONNECTION_ID()函数--不需任何参数--就可以看到当下连接MySQL服务器的连接次数,不同时间段该…

Sentinel核心类解读:Node

基本介绍 Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口。Node中保存了对资源的实时数据的统计,Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的: Holds real-time statistics…

C++基础 -28- 友元

友元用于访问类中的所有数据成员 类中的私有成员,类外不可访问 定义友元的格式(友元函数必须要在类内,声明) friend void show(person &b); 使用友元访问类的所有成员 #include "iostream"using namespace std…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器,可以用来分析SQL执行计划,需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

什么是路由抖动?该如何控制

路由器在实现不间断的网络通信和连接方面发挥着重要作用,具有所需功能的持续可用的路由器可确保其相关子网的良好性能,由于网络严重依赖路由器的性能,因此确保您的路由器不会遇到任何问题非常重要。路由器遇到的一个严重的网络问题是路由抖动…

分布式ID生成框架Leaf升级踩坑

背景: 在项目中需要一个统一的拿单号等唯一ID的服务,就想起了之前用到的leaf,但是因为项目要求,leaf的版本不符合,需要做一些升级 项目地址:https://github.com/Meituan-Dianping/Leaf 升级点&#xff1…

如何从 Android 手机恢复已删除的视频

您是否曾经丢失过手机中的任何数据?如今,由于 Android 上的应用程序崩溃、根进程停止、Android 更新失败等等,数据丢失很普遍。错误删除是丢失视频、录音和音乐副本的另一种可能的方式。 丢失包含有关新完成的项目的重要信息的视频或婚礼、周…