最近因为项目需求,在界面显示时间的地方比较多,所以就调研了一下Android中的有关时间显示的控件,包括TextClock,DatePicker,TimePicker,CalendarView,DigitalClock,AnalogClock以及定时器Chronometer等,针对每一个控件我都会写一篇简短的博客记录一下
1,TextClock简介
人如其名对这个控件也很适用,TextClock继承至TextView,所以TextView控件的属性其都有,除此之外我们还可以通过xml文件设置其显示样式或者通过方法调用的方式,和其他控件一模一样;比如:
(1)xml形式
<TextClock
android:id="@+id/date_window"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="250dp"
android:layout_marginTop="10dp"
android:background="#B0C4DE"
android:format12Hour="yyyy-MM-dd,HH:mm"
android:format24Hour="hh:mm:ss,EE"
android:textColor="#000"
android:textSize="20dp"
android:textStyle="bold">
</TextClock>
(2)方法调用的样式
timeClock.setFormat12Hour("yyyy-MM-dd hh:mm:ss, EEEE");
timeClock.setFormat12Hour("yyyy-MM-dd hh:mm:ss");
timeClock.setFormat24Hour("HH:mm");
timeClock.setFormat12Hour("yyyy-MM-dd , hh:mm:ss , aa ,EEEE");
timeClock.setFormat12Hour("yyyy-MM-dd , EE");
我们以(2)中第四个方法设置为例,效果图如下:
2,详细信息和注意事项
关于这个控件的使用,最主要的是显示格式的设置(对于字体或者尺寸的设置和TextView一样即可,这里不做叙述),从上面的五个方法中我们也可以看出来其显示样式的设定和正则表达式一样:
yyyy:代表年份
MM:代表月份
dd:代表日期
hh或者HH:代表小时
mm:代表分钟
ss:代表秒
aa:代表上午或者下午
EE:代表星期缩写
EEEE:代表星期全写
它们之间连接符可以为任意符号字符,比如:
timeClock.setFormat12Hour("yyyy$$MM@@dd , HH||mm**ss , aa ,EEEE");
显示效果:
所以其内部的本质还是基于正则匹配。
注:目前测试通过设置24小时显示模式,显示样式的规则无法改变实际的显示效果;比如:
timeClock.setFormat24Hour("yyyy-MM-dd , HH:mm:ss , aa ,EEEE");
结果: