进来需要做一个桌面小组件的项目,其中当然包括了时钟。度娘一下发现所有的文章都是说自己放表盘、分钟、时针三张图片,用service做个定时器控制指针旋转时间相对应的角度来更新小组件,然后需要前台service、独立进程这样的保活手段来保持时钟不停的走动…
挑战技术当然是没什么问题,但是实际上实现起来并不需要自定义那么多…
实际上在widget小部件支持的控件里有一个是AnalogClock,它是一个带指针的表盘,会根据系统时间自己转动。默认效果如图:
它可以替换掉默认表盘、分钟、时针图片,上图中效果为默认效果,和本代码不一致,请根据需要自行修改
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:dial="表盘图片,可根据需要替换"
android:hand_minute="分钟图片,可根据需要替换"
android:hand_hour="时钟图片,可根据需要替换"
/>
还有一个文字时钟TextClock,文档中没有说widget支持这个控件,但是它确实能用,默认效果如图,它也会根据时间自己刷新:
它是TextView的子类,可以设置字体颜色、字体大小、时间格式(12/24小时制)。上图中效果为默认效果,和本代码不一致,请根据需要自行修改
<TextClock
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#333333"
android:textSize="28sp"
android:format24Hour="HH:mm"24小时制的时间格式,可根据需要修改显示格式
android:format12Hour="hh:mm"12小时制的时间格式,可根据需要修改显示格式
/>