回复
#星计划#鸿蒙应用开发实战:实现时钟app 原创
鱼弦CTO
发布于 2023-12-21 11:04
浏览
0收藏
原理详细解释:
- 应用界面使用XML布局文件(
clock.xml
)定义,其中包含一个显示时间的文本组件和两个按钮组件。 - 主要代码文件(
ClockAbility.java
)继承自Ability
类,作为应用的入口点。 - 在
onStart
方法中,通过findComponentById
方法获取界面上的文本组件和按钮组件,并为按钮组件设置点击监听器。 - 当用户点击"Start"按钮时,调用
startClock
方法开始计时,将isRunning
标志设置为true
,记录开始时间,并调用updateClockRunnable
的run
方法更新时钟显示。 -
updateClockRunnable
是一个Runnable
对象,它通过计算当前时间与开始时间的差值,来计算经过的时间,并将时间格式化为"HH:MM:SS"的形式,然后更新显示在文本组件上。如果计时正在运行,会使用postDelayed
方法延迟1秒后再次调用run
方法更新时钟。 - 当用户点击"Stop"按钮时,调用
stopClock
方法停止计时,将isRunning
标志设置为false
。
底层架构流程图:
+------------------------+
| |
| onStart(Intent) |
| | |
| +---------+ |
| | | |
| | XML | |
| | Layout | |
| | | |
| +----+----+ |
| | |
| +-------v--------+ |
| | | |
| | Find Views | |
| | | |
| +-------+--------+ |
| | |
| +-------v--------+ |
| | | |
| | Set Listeners | |
| | | |
| +-------+--------+ |
| | |
| +-------v--------+ |
| | | |
| | Start Clock | |
| | | |
| +-----+----------+ |
| | |
| +-----v----------+ |
| | | |
| | Update Clock | |
| | | |
| +-----+----------+ |
| | |
| +-----v----------+ |
| | | |
| | Stop Clock | |
| | | |
| +----------------+ |
| |
+------------------------+
使用场景解释:
时钟应用是一个常见的实用工具,适用于各种场景,包括但不限于以下情况:
- 个人使用:用户可以在手机或其他设备上使用时钟应用来查看当前时间。
- 会议或活动:在会议室、办公室或其他公共场所中,时钟应用可以作为一个简单的计时工具,帮助参与者控制时间。
- 倒计时活动:时钟应用可以用于倒计时活动,如运动比赛、烹饪计时等。
以下是一个简单的鸿蒙应用开发实战示例,实现了一个时钟应用:
clock.xml(布局文件):
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:width="match_parent"
ohos:height="match_parent"
ohos:orientation="vertical">
<Text
ohos:id="$+id/clockText"
ohos:width="match_content"
ohos:height="match_content"
ohos:text="00:00:00"
ohos:text_size="60fp"
ohos:text_alignment="center" />
<Button
ohos:id="$+id/startButton"
ohos:width="match_content"
ohos:height="match_content"
ohos:text="Start"
ohos:layout_alignment="center"
ohos:margin_top="30fp" />
<Button
ohos:id="$+id/stopButton"
ohos:width="match_content"
ohos:height="match_content"
ohos:text="Stop"
ohos:layout_alignment="center"
ohos:margin_top="10fp" />
</DirectionalLayout>
ClockAbility.java(主要代码):
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Text;
public class ClockAbility extends Ability {
private Text clockText;
private Button startButton;
private Button stopButton;
private boolean isRunning = false;
private long startTime = 0;
private Runnable updateClockRunnable = new Runnable() {
@Override
public void run() {
long currentTime = System.currentTimeMillis();
long elapsedTime = currentTime - startTime;
int seconds = (int) (elapsedTime / 1000) % 60;
int minutes = (int) ((elapsedTime / (1000 * 60)) % 60);
int hours = (int) ((elapsedTime / (1000 * 60 * 60)) % 24);
String timeText = String.format("%02d:%02d:%02d", hours, minutes, seconds);
clockText.setText(timeText);
if (isRunning) {
clockText.postDelayed(this, 1000);
}
}
};
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_clock);
clockText = (Text) findComponentById(ResourceTable.Id_clockText);
startButton = (Button) findComponentById(ResourceTable.Id_startButton);
stopButton = (Button) findComponentById(ResourceTable.Id_stopButton);
startButton.setClickedListener(component -> startClock());
stopButton.setClickedListener(component -> stopClock());
}
private void startClock() {
if (!isRunning) {
isRunning = true;
startTime = System.currentTimeMillis();
updateClockRunnable.run();
}
}
private void stopClock() {
isRunning = false;
}
}
以上代码是一个简单的鸿蒙时钟应用的示例。它包含一个布局文件 clock.xml
和一个主要代码文件 ClockAbility.java
。其中,布局文件定义了应用的界面布局,主要代码文件实现了时钟的计时功能。
请注意,该示例仅实现了基本的时钟功能,仅供参考和学习。对于一个完整的应用,可能需要添加更多的功能,例如设置闹铃、倒计时等。此外,还可以进行界面美化和交互优化,以满足具体需求。
如果想要运行这个应用,请使用鸿蒙开发环境进行编译和部署。
文献材料链接:
鸿蒙应用开发相关文档和资料可以在华为开发者网站上找到。以下是一些鸿蒙应用开发的官方文档链接:
- 鸿蒙应用开发指南:https://developer.harmonyos.com/cn/docs/documentation/doc-references/overview-0000000000010565
- 鸿蒙开发者社区:https://developer.harmonyos.com/cn/
当前都有哪些产品在使用:
目前,鸿蒙操作系统已经在一些华为公司的产品中得到了应用。以下是一些使用鸿蒙操作系统的产品示例:
- 华为智能手机:华为公司的最新一代智能手机,如华为 Mate 40 系列、华为 P40 系列等,已经采用了鸿蒙操作系统。
- 华为智能手表:华为推出了一系列基于鸿蒙操作系统的智能手表,如华为 Watch 3 系列。
- 华为智能电视:华为在智能电视领域也采用了鸿蒙操作系统,推出了一系列支持鸿蒙的智能电视产品。
- 华为笔记本电脑:华为 MateBook 系列笔记本电脑中的一些型号也开始使用鸿蒙操作系统。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2023-12-21 11:07:46修改
赞
1
收藏
回复
相关推荐