Android 基础入门教程 Date Time组件(上)

2.4.2 Date & Time组件(上)

分类Android 基础入门教程

本节引言:

本节给大家带来的是Android给我们提供的显示时间的几个控件,他们分别是: TextClock,AnalogClock,Chronometer,另外其实还有个过时的DigitalClock就不讲解了! 好的,开始本节内容!


1.TextClock(文本时钟)

TextClock是在Android 4.2(API 17)后推出的用来替代DigitalClock的一个控件!
TextClock可以以字符串格式显示当前的日期和时间,因此推荐在Android 4.2以后使用TextClock。
这个控件推荐在24进制的android系统中使用,TextClock提供了两种不同的格式, 一种是在24进制中显示时间和日期,另一种是在12进制中显示时间和日期。大部分人喜欢默认的设置。

可以通过调用:TextClock提供的is24HourModeEnabled()方法来查看,系统是否在使用24进制时间显示! 在24进制模式中:

  • 如果没获取时间,首先通过getFormat24Hour()返回值;
  • 获取失败则通过getFormat12Hour()获取返回值;
  • 以上都获取失败则使用默认;

另外他给我们提供了下面这些方法,对应的还有get方法:

Attribute NameRelated MethodDescription
android:format12HoursetFormat12Hour(CharSequence)设置12时制的格式
android:format24HoursetFormat24Hour(CharSequence)设置24时制的格式
android:timeZonesetTimeZone(String)设置时区

其实更多的时间我们是花在时间形式定义上,就是里面这个CharSequence! 这里提供下常用的写法以及结果:

<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="MM/dd/yy h:mmaa"/> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="MMM dd, yyyy h:mmaa"/> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="MMMM dd, yyyy h:mmaa"/> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="E, MMMM dd, yyyy h:mmaa"/> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="EEEE, MMMM dd, yyyy h:mmaa"/> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="Noteworthy day: 'M/d/yy"/>

运行结果:

PS:另外minsdk 要大于或者等于17哦!


2.AnalogClock(模拟时钟)

就是下图这种:

官网中我们可以看到这样三个属性:

依次是:表背景,表时针,分时针的图片,我们可以自行定制:

示例代码如下:

<AnalogClock android:layout_width="100dp" android:layout_height="100dp" android:dial="@mipmap/ic_c_bg" android:hand_hour="@mipmap/zhen_shi" android:hand_minute="@mipmap/zhen_fen" />

运行结果:


3.Chronometer(计时器)

如题,就是一个简单的计时器,我们直接上使用示例吧:

使用示例:

实现代码:

布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <Chronometer android:id="@+id/chronometer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="#ff0000" android:textSize="60dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:orientation="horizontal"> <Button android:id="@+id/btnStart" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="开始记时" /> <Button android:id="@+id/btnStop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止记时" /> <Button android:id="@+id/btnReset" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="重置" /> <Button android:id="@+id/btn_format" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="格式化" /> </LinearLayout> </LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener,Chronometer.OnChronometerTickListener{ private Chronometer chronometer; private Button btn_start,btn_stop,btn_base,btn_format; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { chronometer = (Chronometer) findViewById(R.id.chronometer); btn_start = (Button) findViewById(R.id.btnStart); btn_stop = (Button) findViewById(R.id.btnStop); btn_base = (Button) findViewById(R.id.btnReset); btn_format = (Button) findViewById(R.id.btn_format); chronometer.setOnChronometerTickListener(this); btn_start.setOnClickListener(this); btn_stop.setOnClickListener(this); btn_base.setOnClickListener(this); btn_format.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btnStart: chronometer.start();// 开始计时 break; case R.id.btnStop: chronometer.stop();// 停止计时 break; case R.id.btnReset: chronometer.setBase(SystemClock.elapsedRealtime());// 复位 break; case R.id.btn_format: chronometer.setFormat("Time:%s");// 更改时间显示格式 break; } } @Override public void onChronometerTick(Chronometer chronometer) { String time = chronometer.getText().toString(); if(time.equals("00:00")){ Toast.makeText(MainActivity.this,"时间到了~",Toast.LENGTH_SHORT).show(); } } }

运行截图:


本节小结:

本节跟大家简单的介绍了TextClock,AnalogClock,Chronometer这三个组件,从篇幅就可以看出 其实这几个东西用得并不多,几乎是没用过...知道下就好,用法也超简单... 就这样吧,本节就到这里~谢谢

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

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

相关文章

编译时代码生成实现全解析(从原理到落地的完整路径)

第一章&#xff1a;编译时代码生成实现全解析编译时代码生成是一种在程序编译阶段自动生成源代码的技术&#xff0c;广泛应用于提升开发效率、减少样板代码和增强类型安全。该技术依赖于语言提供的元编程能力&#xff0c;通过分析源码结构&#xff0c;在编译前注入或生成新的代…

​ Android 基础入门教程​Date Time组件(下)

2.4.3 Date & Time组件(下) 分类 Android 基础入门教程 本节引言&#xff1a; 本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件&#xff0c;他们分别是&#xff1a; DatePicker(日期选择器)&#xff0c;TimePicker(时间选择器)&#xff0c;Cale…

Open-AutoGLM项目实战:在Android设备上实现自动操作与ADB键盘控制

项目简介 本文将详细介绍如何使用Open-AutoGLM项目实现对Android设备的自动控制&#xff0c;包括ADB键盘配置和设备连接设置。 ⚠️ 本文章仅供研究和学习使用。严禁用于非法获取信息、干扰系统或任何违法活动。请仔细审阅 使用条款 1. 项目获取与安装 首先&#xff0c;克隆项…

学霸同款9个AI论文写作软件,MBA论文轻松搞定!

学霸同款9个AI论文写作软件&#xff0c;MBA论文轻松搞定&#xff01; AI工具如何助力论文写作&#xff0c;让学术之路更轻松 在当今快节奏的学术环境中&#xff0c;MBA学生和研究者面临着越来越高的论文写作压力。从选题到开题&#xff0c;从初稿撰写到最终定稿&#xff0c;每一…

还在裸奔运行固件?,立即升级你的嵌入式系统以应对NIST新安全规范要求

第一章&#xff1a;还在裸奔运行固件&#xff1f;重新审视嵌入式系统的安全起点嵌入式系统长期被视为“功能优先”的技术载体&#xff0c;然而随着物联网设备的爆发式增长&#xff0c;固件在无防护状态下直接运行已成为重大安全隐患。许多设备仍以明文存储固件、缺乏启动验证机…

嵌入式系统日志如何防泄漏?:基于C语言的加密存储实战方案

第一章&#xff1a;嵌入式系统日志安全的挑战与意义在物联网和智能设备快速发展的背景下&#xff0c;嵌入式系统广泛应用于工业控制、医疗设备、智能家居等领域。这些系统在运行过程中产生大量日志数据&#xff0c;记录着关键的操作行为、异常事件和安全状态。然而&#xff0c;…

软著到底有多“香”?它和专利的区别你一定要懂!

很多朋友都听说过软著&#xff08;软件著作权&#xff09;&#xff0c;但常常把它和专利搞混。今天就用大白话&#xff0c;给大家讲清楚两者的区别&#xff0c;以及软著对个人和企业的实用价值。一、软著与专利&#xff1a;不是一回事&#xff01;软件著作权&#xff0c;是保护…

揭秘编译时代码生成:如何让程序自动写代码并提升性能300%

第一章&#xff1a;揭秘编译时代码生成的核心价值在现代软件开发中&#xff0c;编译时代码生成&#xff08;Compile-time Code Generation&#xff09;已成为提升开发效率与系统性能的关键技术。它通过在程序编译阶段自动生成重复性或模板化代码&#xff0c;减轻开发者负担&…

集合表达式嵌套性能调优全解析(从入门到专家级实践)

第一章&#xff1a;集合表达式嵌套使用在现代编程语言中&#xff0c;集合表达式&#xff08;如列表推导、集合推导和字典推导&#xff09;提供了简洁高效的数据处理方式。当这些表达式被嵌套使用时&#xff0c;能够实现对多维数据结构的灵活操作&#xff0c;尤其适用于处理嵌套…

SWAP模型教程

SWAP模型是先进农作物模型&#xff0c;它综合考虑了土壤-水分-大气以及植被间的相互作用&#xff1b;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程&#xff0c;使其能够精确的模拟土壤中水分的运动&#xff0c;而且耦合了WOFOST作物模型使作物的生长…

下一代计算范式已来:掌握存算一体芯片C语言编程的黄金窗口期

第一章&#xff1a;存算一体芯片C语言操控的变革意义存算一体芯片通过将计算单元与存储单元深度融合&#xff0c;打破了传统冯诺依曼架构中的“内存墙”瓶颈。在这一新型硬件范式下&#xff0c;C语言作为底层系统开发的核心工具&#xff0c;正经历着操控方式的根本性变革。这种…

【系统】MES系统全景分析

文章目录MES系统全景分析一、定义二、核心功能1、实时数据采集与监控2、生产计划与调度3、质量管理4、设备管理5、物料管理6、数据分析与报告三、技术架构四、行业应用五、MES软件在工业4.0/智能制造中的角色演变六、全球MES软件市场现状及主要厂商七、全球MES软件市场头部厂商…

为什么你的UE6项目必须立即支持C++26?,90%团队忽视的性能红利

第一章&#xff1a;为什么UE6项目必须立即拥抱C26随着Unreal Engine 6正式支持C26标准&#xff0c;开发者迎来了前所未有的性能优化与语言表达能力提升。C26不仅引入了模块化系统&#xff08;Modules&#xff09;的最终形态&#xff0c;还增强了协程、反射和元编程能力&#xf…

深度大盘点!2026年值得收藏的10款写小说软件:实测ai写小说与小说软件生成器

“卡文卡到想撞墙&#xff0c;大纲憋了三天只有一个文件夹名字。” 这大概是咱们写小说的兄弟姐妹们最想死的时候。 说实话&#xff0c;都2025年了&#xff0c;别硬撑。大神们嘴上说“灵感爆发”&#xff0c;背地里指不定都在用ai写小说工具偷着乐。与其对着空白文档薅头发&a…

C++26任务调度新纪元(std::execution架构深度剖析)

第一章&#xff1a;C26任务调度新纪元&#xff1a;std::execution架构概览C26即将引入全新的std::execution架构&#xff0c;标志着并发与并行编程进入标准化、可组合的新阶段。该设计旨在统一现有执行策略&#xff08;如std::launch::async&#xff09;和第三方库&#xff08;…

C语言内存安全管理(企业级防御策略首次公开)

第一章&#xff1a;C语言内存安全管理概述C语言因其高效性和对底层硬件的直接控制能力&#xff0c;广泛应用于系统编程、嵌入式开发和高性能计算领域。然而&#xff0c;这种灵活性也带来了显著的内存管理挑战。C语言不提供自动垃圾回收机制&#xff0c;程序员必须手动分配和释放…

护网攻防演练全流程详解:从准备到复盘,小白速成指南

护网攻防演练全流程&#xff0c;网安小白必看&#xff01; 演练全流程拆解 准备阶段&#xff1a; ◦ 组织方&#xff1a;确定参演单位、制定规则、组建紫队。 ◦ 蓝队&#xff1a;资产盘点、漏洞修复、安全加固、预案演练。 ◦ 红队&#xff1a;情报收集、武器制备、环境搭…

HunyuanVideo-Foley版本管理:Git+Docker实现模型迭代追踪

HunyuanVideo-Foley版本管理&#xff1a;GitDocker实现模型迭代追踪 1. 引言 1.1 业务场景描述 随着AIGC技术的快速发展&#xff0c;视频内容创作正经历从“手动制作”到“智能生成”的范式转变。2025年8月28日&#xff0c;腾讯混元正式开源了端到端视频音效生成模型——Hun…

(116页PPT)智慧工地系统工程基于物联网云计算某著名企业互联技术的建筑施工现场管理一体化平台(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/92458173 资料解读&#xff1a;智慧工地系统工程基于物联网云计算某著名企业互联技术的建筑施工现场管理一体化平台 详细资料请看本解读文章…

2025 文旅景区运营趋势深度解析:从流量狂欢到高质量发展

引言随着国内经济稳步增长、消费结构持续升级及政策红利不断释放&#xff0c;中国文旅景区行业正迎来新一轮变革。2025 年&#xff0c;国内旅游人次预计突破 60 亿&#xff0c;文旅消费从单一观光向全域体验转型&#xff0c;景区运营也面临着从 "流量争夺" 到 "…