Android原生模块DeskClock分析1 下载本文

内容发布更新时间 : 2024/5/14 12:22:52星期一 下面是文章的全部内容请认真阅读。

CHINA

DeskClock分析文档

DeskClock分析文档

DeskClock分析

一. DeskClock界面 二. Alarms界面 三. 设置闹钟参数 四. 设置Alarms属性 五. 布局文件 六. 个人总结及BUG

附件:Deskclock类图

2

DeskClock分析文档

一. DeskClock界面

DeskClock界面的组件

View组件中包括: NextAlarm,BatteryDisplay,WeatherCurrentTemperature,WertherHighTemerature,WertherLowTemerature,WertherLocation,Date,TimeDisplay,AmPm(天气组件部分未实现)

Button组件中包括:alarm_button gallery_button music_button home_button nightmode_button

2.DeskClock继承Activity类,主要实现跳转功能。 通过将监听器绑定在Button上,实现界面跳转。

本界面重点在于屏保的转换,通过nightmode_button按钮,实现暗屏,屏保等功能。 屏幕明暗转换: · 暗~明:

UI~创建View并监听~执行nightmodeButton~Dodim~判断true/false执行是否变暗。

· 明~暗:

UI~创建View并监听~接收到点击黑屏事件~ nightmodeButton~Dodim~判断true/false执行是否变暗。

屏保模式:(超时自动屏保,手动屏保,黑屏移动,退出屏保模式)

· 超时自动屏保:

另起线程~当屏幕超时无操作时~新建View,Window获得并显示信息~创建数据~刷新数据~设置可见~确定位置。 · 长按变暗:

UI~判断dimed的true/false~按nightmodeButton~接受黑屏事件并定义View,将数据显示在黑屏上~刷新数据~刷新闹钟~创建View来显示时钟数据并重新定义位置。 · 黑屏移动:

另起线程~当改变位置时~调用moveScreenSaver~确定位置~定义长宽.

Digital:另起线程,更新数据~更新~改变格式

· 退出屏保:

onDetachedFromWindow~DigitalClock~onFinishInflate~AmPm~setDateFormat~get24HourMode~setShowAmPm~onAttachedToWindow,过滤~另起线程~更新数据

? 常量: ACTION_DATE_CHANGED ACTION_BATTERY_CHANGED ACTION_MIDNIGHT BATTERY_STATUS_UNKNOWN QUERY_WEATHER_DATA_MSG UPDATE_WEATHER_DISPLAY_MSG QUERY_WEATHER_DELAY SCREEN_SAVER_TIMEOUT_MSG

广播行动:时间已经改变了 系统定义,包括充电状态,普通状态 夜间模式(黑屏) 位置位置 查询天气信息 更新天气显示信息 查询天气是否显示 超时屏保信息

3