HarmonyOS APP开发入门3——组件(六 时间组件 )---Clock,TickTimer

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
img

正文

<Clock
ohos:id=“ + i d : c l o c k " o h o s : t i m e = " 1861931471 " o h o s : h e i g h t = " m a t c h _ c o n t e n t " o h o s : w i d t h = " m a t c h _ c o n t e n t " o h o s : m u l t i p l e _ l i n e s = " t r u e " o h o s : t e x t _ s i z e = " 35 f p " o h o s : t e x t _ a l i g n m e n t = " c e n t e r " o h o s : m o d e _ 24 _ h o u r = " y y y y 年 M M 月 d d 日 H H : m m : s s " o h o s : l a y o u t _ a l i g n m e n t = " c e n t e r " / > < B u t t o n o h o s : i d = " +id:clock" ohos:time="1861931471" ohos:height="match\_content" ohos:width="match\_content" ohos:multiple\_lines="true" ohos:text\_size="35fp" ohos:text\_alignment="center" ohos:mode\_24\_hour="yyyy年MM月dd日 HH:mm:ss" ohos:layout\_alignment="center" /> <Button ohos:id=" +id:clock"ohos:time="1861931471"ohos:height="match_content"ohos:width="match_content"ohos:multiple_lines="true"ohos:text_size="35fp"ohos:text_alignment="center"ohos:mode_24_hour="yyyyMMddHH:mm:ss"ohos:layout_alignment="center"/><Buttonohos:id="+id:but”
ohos:height=“match_content”
ohos:width=“match_content”
ohos:text=“改为12小时制”
ohos:text_size=“20fp”
ohos:background_element=“#92D050”
ohos:top_margin=“30vp”
ohos:layout_alignment=“center”/>

Java代码

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {

Clock clock;
Button but;

@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//1.找到时钟组件
clock = (Clock) findComponentById(ResourceTable.Id_clock);
//找到按钮组件
but = (Button) findComponentById(ResourceTable.Id_but);
//2.给按钮添加一个单击事件
but.setClickedListener(this);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
//如果为0,表示24小时制 //如果为1,表示12小时制 int flag = 0; @Override
public void onClick(Component component) {
if(flag == 0){
//表示当前为24小时,改为12小时 //默认是24小时的。 //如果我们要按照12小时进行展示,需要把24小时的展示方式给关闭
clock.set24HourModeEnabled(false);
//3.指定12小时的展示格式
clock.setFormatIn12HourMode(“yyyy年MM月dd日 hh:mm:ss a”);
//修改按钮上的文字提示
but.setText(“改为24小时制”);
//修改标记
flag = 1;
}else if(flag == 1){
//当前是12小时制,要改为24小时制
clock.set24HourModeEnabled(true);
//修改展示格式
clock.setFormatIn24HourMode(“yyyy年MM月dd日 HH:mm:ss”);
//修改按钮上的文字提示
but.setText(“改为12小时制”);
//修改标记
flag = 0;
}
}
}

TickTimer定时器组件

组件说明

是Text的子类,所以可以使用Text的一些属性。该组件目前有一些bug。这些bug黑马程序员已经反馈至鸿蒙官方,后续版本中会修复这些bug.

bug 是计时器会在程序启动的时候就开始计时,这个一个来自底层的bug

常见属性

属性名功能说明
forma设置显示的格式
count_downtrue倒着计时false正着计时

常见方法

方法名方法名 功能说明
start()启动计时器
stop()暂停计时器
setBaseTime(long base)设置基准时间,有bug
setCountDown(boolean countDown)true:倒着计时,false:顺着计时
setFormat(String format)设置显示格式。默认格式为:分钟::秒钟
setTickListener计时监听

基本用法

xml文件

<TickTimer
ohos:id=“$+id:my_tt”
ohos:height=“60vp”
ohos:width=“250vp”
ohos:padding=“10vp”
ohos:text_size=“20fp”
ohos:text_color=“#ffffff”
ohos:background_element=“#0000ff”
ohos:text_alignment=“center”
ohos:layout_alignment=“horizontal_center”
ohos:top_margin=“50vp” />

代码示例

TickTimer tickTimer = (TickTimer)findComponentById(ResourceTable.Id_my_tt);
//可能有bug,里边的事件,时间戳,绝对时间值,测试都不对
//没有设置时间,默认是从1970年1月1日开始。
//设置为0,是从当前时间开始。正数减时间,负数加时间,实际写代码测试一下,是否修改了这个bug
//tickTimer.setBaseTime(时间的毫秒值);
//设置是正着计时还是倒着计时
//tickTimer.setCountDown(false);
//设置格式
tickTimer.setFormat(“mm:ss”);
//对时间进行监听
tickTimer.setTickListener(监听回调);
//开始计时
tickTimer.start();
//可能有bug,执行后,后台没停止
tickTimer.stop();
//纯Java实现
//每隔1秒就执行run里面的代码
//只不过没有页面显示而已。 T
imer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run() {
//…在这里写定时任务
});
}
},0,1000);
timer.cancel(); //停止计时

TimePicker组件

TimePicker主要供用户选择时间。

支持的XML属性

属性名称中文描述取值取值说明使用案例
am_pm_order在12小时制显示的情况下,控制上午下午排列顺序start表示am/pm列靠时间选择器起始端显示。ohos:mode_24_hour="false"ohos:am_pm_order=“start”
end表示am/pm列靠时间选择器结束端显示。ohos:mode_24_hour="false"ohos:am_pm_order=“end”
left表示am/pm列靠时间选择器左侧显示。ohos:mode_24_hour="false"ohos:am_pm_order=“left”
right表示am/pm列靠时间选择器右侧显示。ohos:mode_24_hour="false"ohos:am_pm_order=“right”
属性名称中文描述取值取值说明使用案例
mode_24_hour是否24小时制显示boolean类型可以直接设置true/false,也可以引用boolean资源。ohos:mode_24_hour=“true"ohos:mode_24_hour=”$boolean:true"
hour显示小时integer类型可以直接设置整型数值,也可以引用integer资源。小时取值范围必须在0~23。ohos:hour=“23"ohos:hour=”$integer:hour"
minute显示分钟integer类型可以直接设置整型数值,也可以引用integer资源。分钟取值范围必须在0~59。ohos:minute=“59"ohos:minute=”$integer:minute"
second显示秒integer类型可以直接设置整型数值,也可以引用integer资源。秒钟取值范围必须在0~59。ohos:second=“59"ohos:second=”$integer:second"
normal_text_color未选中文本的颜色color类型可以直接设置色值,也可以引用color资源。ohos:normal_text_color=“#FFFFFFFF"ohos:normal_text_color=”$color:black"
selected_text_color选中文本的颜色color类型可以直接设置色值,也可以引用color资源。ohos:selected_text_color=“#FF45A5FF"ohos:selected_text_color=”$color:black"
operated_text_color操作项的文本颜色color类型可以直接设置色值,也可以引用color资源。ohos:operated_text_color=“#A8FFFFFF"ohos:operated_text_color=”$color:black"
normal_text_size未选中文本的大小float类型表示尺寸的float类型。可以是浮点数值,其默认单位为px;也可以是带px/vp/fp单位的浮点数值;也可以引用float资源。ohos:normal_text_size=“30"ohos:normal_text_size=“16fp"ohos:normal_text_size=”$float:size_value”
selected_text_size选中文本的大小float类型表示尺寸的float类型。可以是浮点数值,其默认单位为px;也可以是带px/vp/fp单位的浮点数值;也可以引用float资源。ohos:selected_text_size=“30"ohos:selected_text_size=“16fp"ohos:selected_text_size=”$float:size_value”
selected_normal_text_margin_ratio已选文本边距与常规文本边距的比例float类型可以直接设置浮点数值,也可以引用float资源。取值需>0.0f,默认值为1.0f。ohos:selected_normal_text_margin_ratio=“0.5"ohos:selected_normal_text_margin_ratio=”$float:ratio"
selector_item_num显示的项目数量integer类型可以直接设置整型数值,也可以引用integer资源。ohos:selector_item_num=“3"ohos:selector_item_num=”$integer:num"
shader_color着色器颜色color类型可以直接设置色值,也可以引用color资源。ohos:shader_color=“#A8FFFFFF"ohos:shader_color=”$color:black"
text_am上午文本string类型可以直接设置文本字串,也可以引用string资源(推荐使用)。ohos:text_am=“8:00:00"ohos:text_am=”$string:am"
text_pm下午文本string类型可以直接设置文本字串,也可以引用string资源(推荐使用)。ohos:text_pm=“22:00:00"ohos:text_pm=”$string:pm"
top_line_element选中项的顶行Element类型可直接配置色值,也可引用color资源或引用media/graphic下的图片资源。ohos:top_line_element=“#FFFFFFFF"ohos:top_line_element=“

c

o

l

o

r

:

b

l

a

c

k

"

o

h

o

s

:

t

o

p

l

i

n

e

e

l

e

m

e

n

t

=

"

color:black"ohos:top_line_element="

color:black"ohos:topl​inee​lement="media:media_src"ohos:top_line_element=”$graphic:graphic_src” |
| bottom_line_element | 选中项的底线 | Element类型 | 可直接配置色值,也可引用color资源或引用media/graphic下的图片资源。 | ohos:bottom_line_element=“#FFFFFFFF"ohos:bottom_line_element=“

c

o

l

o

r

:

b

l

a

c

k

"

o

h

o

s

:

b

o

t

t

o

m

l

i

n

e

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

:

b

l

a

c

k

"

o

h

o

s

:

b

o

t

t

o

m

l

i

n

e

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-SBw9FiHO-1713131312162)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值