开天辟地 HarmonyOS(鸿蒙) - 组件(展示类): TextClock(系统时间实时显示框)

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 组件(展示类): TextClock(系统时间实时显示框)

示例如下:

pages\component\display\TextClockDemo.ets

/** TextClock - 系统时间实时显示框** TextClock 的 format() 的详细说明*   y:年(yyyy表示完整年份,yy表示年份后两位)*   M:月*   d:日*   E:星期(比如:EEEE对应"星期六",E或EE或EEE对应"周六")*   H:小时(24小时制)*   h:小时(12小时制)*   m:分钟*   s:秒*   SS:厘秒(S个数<3,全部按厘秒处理)*   SSS:毫秒(S个数>=3,全部按毫秒处理)*   aa:上午/下午* 相关示例如下*   输入格式                                 显示效果*   yyyy年M月d日 EEEE                       2023年2月4日 星期六*   yyyy年MM月dd日                          2023年02月04日*   yy年MM月dd日 E                          23年02月04日 周六*   HH:mm:ss                               17:00:04*   aa hh:mm:ss                            上午 5:00:04*   hh:mm:ss                               5:00:04*   mm:ss.SS                               00:04.91*   mm:ss.SSS                              00:04.536*/import { TitleBar } from '../../TitleBar';@Entry
@Component
struct TextClockDemo {@State message: string = ''/** TextClockController - 用于和绑定的 TextClock 之间的交互*   start() - 实时显示*   stop() - 停止实时显示*/controller: TextClockController = new TextClockController()build() {Column({space:10}) {TitleBar()Text(this.message).fontSize(16)/** TextClock - 系统时间实时显示框*   controller - 绑定的 TextClockController 对象*   timeZoneOffset - 时区偏移量*   format() - 显示时间的格式(参见上面的说明)*   fontSize(), fontColor(), fontStyle(), fontWeight(), fontFamily - 字体的相关设置*   textShadow() - 文字阴影(ShadowOptions 对象或者 ShadowOptions 对象集合)*     radius - 阴影的模糊半径*     color - 阴影的颜色*     offsetX - 阴影的 x 轴偏移量*     offsetY - 阴影的 y 轴偏移量*   onDateChange() - 时间变化时的回调*     value - 当前时间戳,距 1970-1-1 的秒数*/TextClock({timeZoneOffset: -8,controller: this.controller,}).format('aa hh:mm:ss').fontSize(36).fontColor(Color.Orange).fontStyle(FontStyle.Normal).fontWeight(400).fontFamily("HarmonyOS Sans").onDateChange((value: number) => {this.message = `onDateChange ${value}`})TextClock({ timeZoneOffset: -8, controller: this.controller }).fontSize(36).format('HH:mm:ss')TextClock({ timeZoneOffset: -8, controller: this.controller }).fontSize(36).textShadow([{ radius: 10, color: Color.Red, offsetX: 5, offsetY: 5 },{ radius: 10, color: Color.Green, offsetX: 10, offsetY: 10 },{ radius: 10, color: Color.Blue, offsetX: 15, offsetY: 15 },])TextClock({ timeZoneOffset: -8, controller: this.controller }).format('aa hh:mm:ss').fontSize(30)// 通过 contentModifier() 实现自定义 TextClock(指定一个实现了 ContentModifier 接口的对象).contentModifier(new MyTextClockModifier(false))Button("start").onClick(() => {// 启动文本时钟this.controller.start()})Button("stop").onClick(() => {// 停止文本时钟this.controller.stop()})}}
}// 实现 ContentModifier 接口
class MyTextClockModifier implements ContentModifier<TextClockConfiguration> {// 自定义属性useMilitaryTime:boolean = true// 构造函数constructor(useMilitaryTime:boolean) {this.useMilitaryTime = useMilitaryTime}// 返回指定的自定义 TextClockapplyContent(): WrappedBuilder<[TextClockConfiguration]> {return wrapBuilder(buildTextClock)}
}// 自定义 TextClock
@Builder function buildTextClock(config: TextClockConfiguration) {/** TextClockConfiguration - 自定义 TextClock 的相关信息*   enabled - 是否可用*   contentModifier - 绑定的 ContentModifier 对象*   timeZoneOffset - 时区偏移量*   started - 是否是实时显示*   timeValue - 当前时间戳,距 1970-1-1 的秒数*/Column() {TimePicker({selected: (new Date(config.timeValue * 1000)),format: TimePickerFormat.HOUR_MINUTE_SECOND}).useMilitaryTime((config.contentModifier as MyTextClockModifier).useMilitaryTime)}
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

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

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

相关文章

美国支付清算体系介绍

美国的支付清算体系是全球最复杂、最多样化的金融基础设施之一,支撑着庞大的国内经济和全球金融活动。本文将详细介绍美国支付清算体系的主要组成部分,包括银行间支付系统(如Fedwire和CHIPS)和零售支付系统(如ACH、Zelle、RTP),并探讨它们的特点和应用场景。通过对比中国…

学习 -人工智能 - AI Agent的理解

浅谈AI Agent的理解 Agents是什么? 大语言模型可以接收输入、可以分析&推理、可以输出文字、代码、媒体。然而其无法像人类一样,拥有规划思考能力、运用各种工具与物理世界互动,以及拥有人类的记忆能力。 AI Agents是基于LLM能够自助理解、自主规划决策、执行复杂任务的…

dotnet LibGit2Sharp 使用笔记

本文记录我对 LibGit2Sharp 库的使用笔记LibGit2Sharp 库开源地址: https://github.com/libgit2/libgit2sharp 本文使用的版本是: 0.31.0 按照 dotnet 的惯例,使用之前先用 NuGet 安装,安装之后的 csproj 文件代码大概如下 <Project Sdk="Microsoft.NET.Sdk"&…

dotnet 9 已知问题 默认开启 CET 导致进程崩溃

本文记录 dotnet 9 的一个已知且当前已修问题。默认开启 CET 导致一些模块执行时触发崩溃官方文档: Breaking change: CET supported by default - .NET Microsoft Learn 表现: 调用 OpenFileDialog 的 ShowDialog 将会异常崩溃,崩溃异常是 FAST_FAIL_SET_CONTEXT_DENIED 或…

读算法简史:从美索不达米亚到人工智能时代08组合优化

读算法简史:从美索不达米亚到人工智能时代08组合优化1. 组合优化 1.1. 蛮力搜索算法会尝试所有可能的组合并从中选择最好的那个 1.2. 旅行商问题是众多组合优化(combinatorial optimization)问题中的一个,它要求许多固定元素以可能的最佳方式进行组合1.2.1. 固定元素可以有无…

[Vie] 依赖预构建

使用Vite模板vue-ts. https://github.com/vitejs/vite/tree/main/packages/create-vite 一个组件在没加入Lodash之前:当加入lodash之后,会自动把它加入到.vite/deps中去: 假如不用依赖构建 vite.config.tsreturn {plugins: [vue()],// ...optimizeDeps: {exclude: [lodash-…

从源码分析arm64中断与GIC

本文以树莓派4b(armv8)来实现,4b支持两种传统的中断控制器 gic-400 但是使用的qemu和实际的板子都是默认支持gic-400的,所以主要是借助gic-400实现中断的功能异常处理 相关寄存器PSTATE 就是cpu状态DAIF 调试异常 SError(系统异常) IRQ(中断) FIQ(快速中断)esr_elx 用来保存返…

《gm/ID设计法基本介绍》翻译

最近流片很累很焦虑,放松心情找篇讲\(g_m/I_D\)设计法的文档翻译一下: 《A Basic Introduction to the gm/ID-Based Design Methodology》 1. 摘要 该文章向读者介绍了基于\(g_m/I_D\)的设计方法学,用于帮助CMOS模拟电路设计者将晶体管物理参数与小信号模型联系起来,文章的…

个人英语学习笔记基于B站英语的平行世界语法课程

导读 语言学习没有捷径,只要听说读写这四大行长期日复一日的练习就行了,兴趣是最重要的,兴趣就是高效学习的基础和长期坚持下去的动力。 0基础开始痛苦学习大半年英语,没兴趣的结果就是词汇量是上去了,但是英语的听说读写水平还不如学了一年的日语。😅 该笔记基于此课程…

PostgreSQL:数据库迁移与版本控制

title: PostgreSQL:数据库迁移与版本控制 date: 2025/2/6 updated: 2025/2/6 author: cmdragon excerpt: 在现代软件开发中,数据库作为应用程序的核心组件之一,数据的结构和内容必须能够随着业务需求的变化而调整。因此,数据库迁移和版本控制成为了确保数据一致性、完整性…

Servlet基础

什么是Servlet、Servlet的架构、Servlet任务、Servlet的基本使用、Servlet的生命周期、Servlet API中主要接口及实现类、Servlet的部署(注册与映射)、缺省Servlet与启动时加载配置、ServletConfig与ServletContext、request和response什么是Servlet基础 Java Servlet 是运行在…

GNURadio模块学习——Source and Sink类

介绍GNU Radio中常见的 Source 与 Sink 模块,包括流程图端口、音频输入输出、虚拟连接、文件读写、ZMQ跨流程图通信,以及随机信号源、固定信号源、噪声源等常见信号源和时域、频域、星座图等信号展示工具。Source and Sink Pad(流程图端口) 当该流程图是hierarchical block…