文章目录

  • 前言
  • 1. 使用方法
  • 2 优缺点
  • 3 在TextClock中使用样式

前言

在Android上实现数字时钟,还在自己使用TextView实现?在应用界面还容易,如果在AppWidget中,时间更新将会是头疼的问题,为了解决这些烦恼,Android官方提供了TextClock类,只需要将控件放在不居中,设置自己需要时间格式即可。

更多详情请参考Google官方文档:TextClock

1. 使用方法

  • 布局文件实现,在布局文件中添加控件,设置样式等;
  • 设置时间显示格式;
  • 运行程序,查看效果。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextClockandroid:id="@+id/timeText"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="3"android:format12Hour="hh:mm"android:format24Hour="HH:mm"android:gravity="center"android:textColor="@android:color/black"android:textSize="40sp"android:textStyle="bold"/><TextClockandroid:id="@+id/dateText"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:format12Hour="yyyy/MM/dd E"android:format24Hour="yyyy/MM/dd E"android:gravity="center"android:textColor="@android:color/black"android:textSize="16sp"/>
</LinearLayout>

没错,就这么简单,一个简单的数字时钟就完成了,示例是AppWidget实现时间显示,关于AppWidget的相关内容请参考:为你的Android应用构建窗口小部件(App Widget)

2 优缺点

  • 优点

    • 使用方便
    • 无需关注时间更新
    • 被AppWidget支持(RemoteViews支持)
  • 缺点

    • 在Android 4.2(Api level 17)开始才被支持

3 在TextClock中使用样式

TextClock还有一个特点就是可以通过对格式化字符串添加样式,这样显示的事件也会拥有对应的样式.

在Android中为文本添加样式,可以通过Span来实现,更多关于Span的内容参考: Span

  • 示例
package com.owen.clockwidgetimport android.graphics.Color
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.text.style.RelativeSizeSpan
import android.widget.TextClock
import androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() {val TAG = "MainActivity"override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val textClock = findViewById<TextClock>(R.id.timeText)val ss = SpannableString("HH:mm:ss")ss.setSpan(ForegroundColorSpan(Color.RED), 0, 6, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)ss.setSpan(ForegroundColorSpan(Color.GREEN), 6, 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE)ss.setSpan(RelativeSizeSpan(0.5f), 6, 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE)textClock.format24Hour = ss}override fun onDestroy() {super.onDestroy()}
}
  • 效果

Android数字时钟神一般的实现——TextClock相关推荐

  1. android 数字时钟代码大全,Android自定义view实现数字时钟

    最近在项目中遇到了一个需要实时更新时间的需求,并且用的地方还是挺多的,无奈做了一个简单的view来时现这个数字时钟. 首先看一下效果,比较简单,就是显示时分秒. 实现思路比较简单,利用handler的 ...

  2. Android Studio利用时钟控件AnalogClock显示模拟时钟以及TextClock显示数字时钟

    前言 利用时钟控件AnalogClock快速制作一个模拟时钟.利用TextClock显示数字时钟. 一.AnalogClock是什么? AnalogClock继承的是View,可重写OnDraw方法. ...

  3. Android模拟时钟和数字时钟示例

    在Android中, AnalogClock是两只手的时钟,一个代表小时,另一个代表分钟. DigitalClock看起来就像您手中的普通数字手表,以数字格式显示小时,分钟和秒. AnalogCloc ...

  4. android开发时钟xml,android模拟时钟和数字时钟的例子

    android.widget.AnalogClock和android.widget.DigitalClock类提供了显示模拟和数字时钟的功能. Android模拟和数字时钟用于在Android应用程序 ...

  5. java数字时钟代码,Android自定义数字时钟代码,android自定义时钟,package jp.t

    Android自定义数字时钟代码,android自定义时钟,package jp.tpackage jp.tsmsogn.digitalclock;import java.util.Calendar; ...

  6. Android开发——实现数字时钟

    前言 在最近的项目当中,我遇到一个在界面中实现系统数字时钟的需求.一看这个其实挺简单的,开个一个子线程获取当前的系统时间睡眠1分钟发送当前时间,然后利用Handler去修改当前显示的时间,直接撸代码. ...

  7. android launcher桌面数字时钟及appwidget更新问题

    代码下载http://download.csdn.net/detail/ldinvicible/5010177 一.桌面数字时钟控件效果图 二. 1.准备好一个Widget的显示布局文件 layout ...

  8. qt android 滑动效果,【转】Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)...

    这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果) ...

  9. android iphone 多核,苹果A11跑分对比Android各大处理器:神一般的处理器

    苹果在昨天凌晨发布了三款新iPhone手机,它们分别是iPhone 8.iPhone 8 Plus以及iPhone X.这三款新机都搭载了A11处理器,这款处理器采用了六核心设计,由2个高性能内核与4 ...

  10. Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)

    这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果) ...

最新文章

  1. Linux虚拟化介绍
  2. 【leetcode】987. Vertical Order Traversal of a Binary Tree
  3. mysql 触发器判断不插入数据_mysql关于触发器怎么判断数据存在时更新不存在时添加呢!...
  4. Logistics Regression公式推导
  5. 不用公钥批量部署机器执行命令_模版
  6. 熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence),似然(Likelihood)
  7. ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件
  8. 数据结构--双链表的创建和操作
  9. HDU4612 Warm up —— 边双联通分量 + 重边 + 缩点 + 树上最长路
  10. 印度孟买机器人餐厅_2020,送餐机器人的海外市场爆发之年
  11. NotImplementedError
  12. .NET配置文件解析过程详解【转载】
  13. 将数字金额转换成大写金额
  14. ggplot2颜色设置
  15. afdsafdsafdsaf
  16. 微博中如何选中#话题#
  17. scrapy中的Request的用法
  18. Request.url用法
  19. JSON转换JAVA对象
  20. Vue3 修改 ref的值,不触发watchEffect的原因

热门文章

  1. python search group_python笔记52-re正则匹配search(group groups groupdict)
  2. redis基础篇——数据一致性
  3. 学习记录 内存频率 内存通道 内存带宽 对计算的影响
  4. 集合源码解析Map容器Gc回收算法
  5. 计算机组装维护安装光驱步骤,光驱怎么安装?教你如何正确安装光驱方法
  6. 用HBuilderX代替微信开发者工具
  7. SecureCRT 经典配色方案
  8. 利用Python实现简单的相似图片搜索
  9. 【C++】黑白矩阵(美团)
  10. bootstrap 检验 法 原理_三种中介效应检验方法及操作步骤