- UID
- 1283
- 麦力
- 380
- 注册时间
- 2016-8-14
- 最后登录
- 2016-9-20
- 精华
- 0
- 阅读权限
- 30
- 在线时间
- 15 小时
|
7#
楼主 |
发表于 2016-8-25 09:22:07
|
只看该作者
我发现这个问题已经是修改表盘的后期了,所以改动比较大,无法给你直接能用的代码。不过我可以给你修改的思路,基本上只要对现有代码进行模仿就可以完成, 应该很简单。
第一步是将日期和星期图层给定到它的涂层句柄中。在代码开始的变量声明阶段,新声明两个变量用于日期、星期图层句柄,例如在
- static int32_t g_app_mwd_battery_layer_id = -1;
复制代码
后面添加
- static int32_t g_app_mwd_week_layer_id = -1;
复制代码
接着,在窗口初始化函数里(P_Window init_mwd_window())将相应图层赋给涂层句柄。例如将
- app_window_add_layer(p_window, layer_text_date);
复制代码
修改为
- if(layer_battery != NULL)
- {
- g_app_mwd_battery_layer_id = app_window_add_layer(p_window, layer_battery);
- }
复制代码
的形式。注意是修改为这个形式,请自己替换其中需要替换的变量,不要照抄。
至此,已经可以在别的方法里调用这两个图层了。
第二步是在时间更新方法(app_zola_watch_time_change)里修改日期和星期。
请仿照这个代码,在这个代码后面添加新的代码
- P_Layer layer_battery = app_window_get_layer_by_id(p_window, g_app_mwd_battery_layer_id);
- if (NULL == layer_battery)
- {
- return;
- }
复制代码
这样可以取到表盘的日期和星期图层。然后仿照这个代码
- sprintf(str, "%d:%02d", datetime.hour, datetime.min);
- app_layer_set_text_text(p_hm_layer, str);
复制代码
修改日期、星期表盘的内容。日期、星期的获取方法在窗口初始化方法(P_Window init_mwd_window())里有。这样就能实现日期、星期的更新。 |
|