『牛角书』基于HarmonyOS的运动手表实战项目

本文介绍了如何基于HarmonyOS(鸿蒙)开发一款运动手表App,详细讲解了创建项目、设计主页面、训练页面及倒计时页面的过程,包括HML、CSS和JS的使用,适合初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

『牛角书』基于HarmonyOS的运动手表实战项目



前言

张荣超老师的从零开始编写一个HarmonyOS(鸿蒙)运动手表上的实战项目App视频,简单易懂,对于初学者有很大的帮助。


创建项目

在课程中我们所用到的软件为DevEco Studio下载地址如下:https://developer.harmonyos.com/cn/develop/deveco-studio#download
首先打开DevEco Studio,点击Create HarmonyOS Project,选择Lite Wearable选项,选择默认的模板(如图),点击next,然后将文件命名为huxi。
在这里插入图片描述
在这里插入图片描述

创建主页面

打开index文件夹,里面有三个文件,文件名分别为index.css,index.hml,index.js。我们要完成对主页面的修改就是通过修改这三个文件来完成的。

index.hml

首先创建一个名为container1的区域组件,组件包含一个名为container2的区域组件和一个按钮组件。在container2组件创建一个名为pv1 的滚动选择器,里面的数据picker1range通过动态绑定的方式获得;创建一个名为changeAction1的onchange事件,当滚动选择器中的数据发生改变的时候,会引发onchange事件;创建一个文本组件,使其显示左边滚动选择器的数据的单位:分;创建一个名为img的图片组件,src为图片的地址;创建一个名为pv2 的滚动选择器,里面的数据picker2range通过动态绑定的方式获得;创建一个名为changeAction2的onchange事件,当滚动选择器中的数据发生改变的时候,会引起onchange事件;创建一个名为btn的按钮组件,按钮上显示的文字为点击开始,点击按钮会引发clickAction事件。

代码如下:

<div class="container1">
    <div class="container2">
        <picker-view class="pv1" range="{
   {picker1range}}" selected="1" onchange="changeAction1"/>
        <text class="txt"></text>
        <image src="/common/hm.png" class="img"/>
        <picker-view class="pv2" range="{
   {picker2range}}" selected="1" onchange="changeAction2"/>
    </div>
    <input type="button" value="点击开始" class="btn" onclick="clickAction"/>
</div>

index.css

设计index中组件的样式
设计container1组件的样式,使在.container1内的元素横向排列、居中对齐规定.container1的范围。Container1在手表上最多显示的范围就宽:454px,高:454px。
在这里插入图片描述
设计container2组件的样式,使在.container2的元素竖向排列,元素居中对齐
令.container2组件的外上边距为50px,高度和宽度为250px,454px;
在这里插入图片描述
设计滚动选择器pv1的样式、高度和宽度
在这里插入图片描述
设计txt组件的样式、高度和宽度使txt组件的文本居中对齐
在这里插入图片描述
设计滚动选择器pv2的样式、高度和宽度
在这里插入图片描述
设计图片组件的样式,高度、宽度、左边距和右边距
在这里插入图片描述
设计按钮组件的样式、高度、宽度背景颜色、边框的颜色和字体的大小
在这里插入图片描述

代码如下:

.container1 {
   
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 454px;
    height: 454px;
}
.container2{
   
    flex-direction: row;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
    width: 454px;
    height: 250px;
}
.txt{
   
    text-align: center;
    width: 50px;
    height: 36px;
}
.pv1{
   
    width: 30px;
    height: 250px;
}
.pv2{
   
    width: 80px;
    height: 250px;
}
.img{
   
    width: 208px;
    height: 208px;
    margin-left: 15px;
    margin-right: 15px;
}
.btn{
   
    width: 200px;
    height: 100px;
    font-size: 38px;
    background-color: #000000;
    border-color: #000000;
}

index.js

导入要用到的router,声明变量picker1value和picker2value,并初始化变量,把数据赋予动态绑定的两个滚动选择器中的数据,点击按钮所引发的事件,点击按钮会通过router.replace跳转到倒计时页面,并把picker1value和picker2value的值通过字典的形式传递到训练页面当滚动选择器pv1和滚动选择器pv2的值发生改变时所引发的事件。当滚动器的值发生改变时通过pv.newValue获得改变后的值,并将其给picker1value或者picker2value
这样我们就完成了主页面的所有功能。

代码如下:

import router from '@system.router'
var picker1value = null;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值