在搭建完鸿蒙开发环境后,可以编写一些简单的页面程序来快速上手,开启鸿蒙开发之旅。这里主要对openharmony与DAYU200开发板的新手使用进行讲解。
开发环境
DevEco Studio版本:DevEco Studio 3.1 Release
HarmonyOS SDK版本:3.1.0(API version 9)
DAYU200.4.0.10.16
项目介绍
功能描述:
我们基于OpenHarmony开发一个专门的应用端来帮助脑卒中患者更好地管理上肢康复过程。旨在为脑卒中患者提供全面的康复辅助和健康管理。
主要功能:
康复计划管理:应用端允许用户创建个性化的康复计划,根据医生的建议和康复进度进行调整。用户可以轻松追踪自己的康复目标,记录进展并定时提醒康复运动。
康复训练评估:应用通过系统采集患者康复运动数据,对肢体进行误差评估,形成康复等级和康复报告。这些数据将被可视化呈现,以便用户和医生更好地了解康复情况。
平台交流和资源分享:卒中管家建立了一个平台,患者可以在这里获取配套资源课程进行康复,能和其他患者、医师进行交流,并获得他人的支持和鼓励。
数据安全和隐私:应用将用户的健康数据存储在安全的云端服务器上,确保数据的隐私和保密性。用户完全掌握自己的数据,并可以选择与医生共享以获得更好的医疗建议。
主要开发内容
01登录
启动器后首先是登录界面,能够实现账号登陆、账号注册及其他登录方式。主要由文本、文本框、按钮组成。
Text("欢迎登陆") .fontSize(60).fontWeight(FontWeight.Bold) .fontColor('\#85caf9').position({x:110,y:-240}) TextInput({ placeholder: "请输入账号" }) .width(440).height(40) .backgroundColor('\#fffff') . placeholderColor(Color.Grey) .position({x:20,y:-80 }) TextInput({ placeholder: "请输入密钥" }) .width(440).height(40) . placeholderColor(Color.Grey) .backgroundColor('\#fffff') .type(InputType.Password) .position({x:20,y:-30 }) //按钮 Button("登录") .width(440).height(50) .position({x:20,y:20 }) .fontWeight(FontWeight.Bold).fontSize(25) .backgroundColor('\#85caf9') .onClick(() =\> { router.pushUrl({ url: 'pages/tabbar' }) }) Button("注册") .width(400).height(40) .position({x:40,y:80 }) .fontWeight(FontWeight.Normal) .fontColor('\#4264b2').fontSize(20) .backgroundColor('\#fffff') .onClick(() =\> { router.pushUrl({ url: 'pages/zhuce' }) })
Checkbox() Text("已阅读并同意使用服务协议和隐私保护指引") .fontSize(16).fontColor('\#4264b2')更换其他方式进行登录或找回密钥。Text("-----其他登陆方式-----") .fontSize(15).width(170).height(100) .position({x:155,y:230 }) .fontColor('\#4264b2') Column() { Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.Wrap }) { Text('手机号登录') .fontColor('\#4264b2') Divider().vertical("true").margin(20).height(15) Text('找回密钥') .fontColor('\#4264b2') Divider().vertical("true").margin(20).height(15) Text('其他方式登录') .fontColor('\#4264b2')
02修改地址
这部分代码是在前端应用中创建一个Select,用于实现修改地址的功能。
Select([{value:'郑州',icon: "/common/yuan.png"}, {value:'北京',icon: "/common/2.png"}, {value:'杭州',icon: "/common/3.png"}, {value:'上海',icon: "/common/4.png"}]) .selected(30).value('城市') .font({size: 20, weight:400, family: 'serif', style: FontStyle.Normal }) .selectedOptionFont({size: 20, weight: 500, family: 'serif', style: FontStyle.Normal }) .optionFont({size: 20, weight: 400, family: 'serif', style: FontStyle.Normal }) .onSelect((index:number)=\>{ console.info("Select:" + index) }).position({ x: 0, y: 15 })
03自定康复方案
这段代码的目的是丰富数据,当点击按钮时,弹出一个文本选择对话框,用户可以从中选择日期,进行时间记录,便于后期清晰展示数据。选择的结果会通过回调函数进行处理。
DatePicker({ start: new Date('1970-1-1'), end: **new** Date('2100-1-1'), selected: **this**.selectedDate, }) .lunar(this.isLunar) .onChange((value: DatePickerResult) =\> { this.selectedDate.setFullYear(value.year, value.month, value.day) console.info('select current date is: ' + JSON.stringify(value)) }) }
然后设置修改康复训练进度,进行康复进度记录,手动输入数据,患者可以在滑动中体验交互趣味
Text('总进度').fontSize(20).fontColor('\#666666').fontWeight(FontWeight.Bold).margin({left :-180}) Row() { Slider({ value: **this**.inSetValue, step: 10, style: SliderStyle.InSet }) .blockColor('\#fffff').trackColor('\#fffff') .selectedColor('\#d6edf6').showSteps(**true**) .onChange((value: number, mode: SliderChangeMode) =\> { **this**.inSetValue = value; console.info('value:' + value + 'mode:' + mode.toString()); })
04康复训练与评估
首先患者可以选择适合的训练课程、预览课程大纲后开始训练。训练完毕后会反馈标准康复动作和患者动作的实时对比,最后根据训练运动数据对比生成相应的等级和评估报告,患者也可以在主页查看历史评估报告。
Video({ src: **this**.videoSrc, previewUri: **this**.previewUri, currentProgressRate: **this**.curRate, controller: **this**.controller })
这段代码主要实现了一个设备校准界面,主要用于动作识别,更精准获取患者动作数据。内容包括显示动作识别标题、提示信息,以及一个包含视频动画和控制按钮的界面。用户可以通过按钮控制动画的播放、结束。图像动画通过VedioCreateCom组件实现,根据按钮的点击事件改变动画状态和参数。
Text('动作识别').fontWeight(FontWeight.Bold).fontSize(30).margin({top : 100,left: 30}) Text('请面向屏幕根据视频依次做动作').fontSize(20).margin({top :10,left: 30}) Column({space:30}) { Video({ src: **this**.videoSrc, previewUri: **this**.previewUri, currentProgressRate: **this**.curRate, controller: **this**.controller }) .width(400) .height(200) .autoPlay(**this**.isAutoPlay) .controls(**this**.showControls) .onStart(() =\> { console.info('onStart') }) .onFinish(() =\> { console.info('onFinish') }) Row({space:100}) { Button('开始').backgroundColor('\#b4dbed') .onClick(() =\> { **this**.controller.start() // 开始播放 }).margin(5) //.backgroundColor('\#b4dbed') Button('结束').backgroundColor('\#b4dbed') .onClick(() =\> { **this**.controller.stop() // 结束播放 }).margin(5) }.margin({ top: -20}) }
新手开发注意事项
01配置DAYU200环境
1.创建项目工程
搭载好HarmonyOS的开发环境后,创建一个项目,注意检查API和DAYU200开发板是否更新。这里选用的为FA模型。
2.下面就是修改相应的配置环境
修改完毕后点击右上角蓝色文字“Sync Now”。出现弹窗后点击“Yes”即修改环境成功。
3. 连接开发板
将DAYU200开发板连接至电脑,右上角会显示开发板编码,即连接成功。
4.建立Hap(s)包
在上方操作栏找到“Build”建立Hap(s)包。另外不要忘记签名哦。
5. 签名
点击右上角头像,出现签名方式。
做完以上操作就可以正常烧录至DAYU200开发板了。
02横屏与竖屏的切换
1.修改手机预览器尺寸
预览器尺寸
开发中使用的是默认大小的手机预览器,我们可以点击上方按钮更改预览器的尺寸。Default是竖屏的尺寸,需要调整横屏选择“Tablet”。
调整预览器尺寸
第一个红框Profile ID可以进行自行命名,第二个红框为长和宽的数值。DPI为整体缩放,一般情况不需要调整。
2.修改代码
竖屏切换横屏
在左侧点击config.json,找到“unspecified”,更改为“landscape”。
完成以上操作便可以实现竖屏和横屏的切换。在调整预览器尺寸的时候,要及时烧录到设备上进行查看,不断调整到最合适的比例。
03跳转页面
新建页面
首先先新建一个页面,此时我们有两个页面。
页面命名
命名为“denglu”
跳转代码
在原来的页面输入画框内的两部分代码,即可完成简单页面跳转。注意,pages后为跳转页面名字。
跳转示范
学会基础跳转便可以实现多个页面交互了。比如点击按钮-跳转页面。
项目效果展示
效果展示,基于openharmony开发的上肢外骨骼-部分页面
04视频播放
参考官方说明文档:https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-media-components-video-0000001333641101
视频文件夹
首先将需要的视频放在rawfile下面。
需要注意的是,在预览中不显示视频,烧录至设备中才会播放视频。
视频名称
和导入图片方法,复制需要的视频至rawfile即可。
视频装饰器
导入官方代码后,需要修改videoSrc、previewUri格式名,也就是视频素材的名字。
视频src
原始代码,不需要改。其中.width和.heigh用来改变视频在屏幕上的大小。
视频播放按钮前置
视频播放按钮
视频播放控制按钮代码。
视频播放速度
随着5G、物联网等技术的快速发展,分布式操作系统市场前景广阔。作为一款新兴操作系统,HarmonyOS有望成为未来科技领域的重要力量。鸿蒙开发技术也为开发者带来了前所未有的机遇和挑战。
在这个充满创新的时代,作为开发者,我们应愈战愈勇,探索世界的无限可能。
为了帮助大家更深入有效的学习到鸿蒙开发知识点,我特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源, 内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。
欢迎大家关注头条【鸿蒙码牛天堂】,回复【666】,获取以上最新鸿蒙学习资料以及视频学习教程。
如果我的文章对你有所帮助,还请帮忙点赞、好评、转发一下,你的支持会激励我输出更高质量的文章,非常感谢!