返回官网官方微博

麦步社区-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: MAI 表盘
查看: 3815|回复: 1
打印 上一主题 下一主题

>>>求助!!关于创建的背景图层被覆盖的问题<<<

[复制链接]

1

主题

1

帖子

430

麦力

精华
0
阅读权限
20
在线时间
15 小时

跳转到指定楼层
楼主
发表于 2018-3-28 10:41:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 2454211 于 2018-3-30 11:32 编辑

   最近在改表盘的显示,打算写一个有动画效果的表盘,也就是画10个尺寸一样,内容不同的位图图片,注册一个定时器,然后每秒或者每半秒调用一下回调函数,在回调函数中改变对应位置的图层图片显示。但是在所有都编译好后,打包到手表上时,有点bug。有一定的概率显示有问题,背景的那个图层有时会被覆盖掉。其他的图层却可以显示,当你用上下键切换到别的表盘,再切换回来时,又能显示了 :( 不知道哪部分代码出了问题。我的代码流程是这样的:

main(){                /*创建显示表盘窗口*/
        P_Window p_window = init_window();
        if (p_window != NULL)
        {
                g_window_id = app_window_stack_push(p_window);
                /*注册一个事件通知回调,当有时间改变时,立即更新时间*/
                maibu_service_sys_event_subscribe(app_watch_time_change);
        }
        return 0;
}

init_window(void){
/*创建一个窗口*/
        p_window = app_window_create()

        display_target_layer(创建背景图层)<------------< 就是这个图层有时不会显示,有时会一闪而过????
        display_target_layer(创建时分图层) X 4
        display_target_layer(创建秒图层)    X 2
        display_target_layer(创建月日图层) X4
        display_target_layer(创建星期图片图层)
        display_target_layer(创建电池图片图层)
        display_target_layer(创建步数图层)
        display_target_layer(创建高度图层)
        display_target_layer(创建第一个动画图层)
        display_target_layer(创建第二个动画图层)
//共17个图层,没有超过20个
         app_window_timer_subscribe(p_window, 1000, sec_callback, NULL)/*定义一个窗口定时器,用于秒表显示*/
         app_service_timer_subscribe(200, sec_callback2, NULL);//使用定时服务,用于显示动画效果。<------------< 如果我有多个时间间隔不一致的图层需要使用,使用这些时间回调函数有什么需要注意的?或者有什么别的方法可以使用?
         return p_window;
}
//sec_callback2和sec_callback内代码结构基本一致
sec_callback2(date_time_t tick_time, uint32_t millis,void *context){
/////定义一些变量及需要的结构体
                           .
                           .
                           .


        /*根据窗口ID获取窗口句柄*/
        p_window = app_window_stack_get_window_by_id(g_window_id);
        if (p_window == NULL) return;


        p_layer = app_window_get_layer_by_id(p_window, g_layer_skull_id);        
        if (p_layer != NULL){
                res_get_user_bitmap(get_skull_icon[g_skull_num], &bitmap);
                app_layer_set_bitmap_bitmap(p_layer, &bitmap);
                g_skull_num++;
        }
        p_layer2 = app_window_get_layer_by_id(p_window, g_layer_effects_id);        
        if(p_layer2 != NULL){
                res_get_user_bitmap(get_effects_icon[g_effects_num], &bitmap2);
                app_layer_set_bitmap_bitmap(p_layer2, &bitmap2);
                g_effects_num++;
        }
        /*窗口显示*/        
        app_window_update(p_window);



}
app_watch_time_change(enum SysEventType type, void *context)
{        /*时间更改*/
        if (type == SysEventTypeTimeChange)
        {        app_watch_data(0);
                window_reloading();
         }
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信 WeiboWeibo
收藏收藏2 分享分享 顶 踩

0

主题

27

帖子

444

麦力

精华
0
阅读权限
30
在线时间
14 小时

沙发
发表于 2018-9-5 21:47:18 | 只看该作者
顶起来!!不好碰到的好帖子











廣東   http://www.gfgfgf.com.tw/hxxt/gm/   2018年09月05日 家常菜譜
中醫中醫腎虛    一千零一夜 http://www.gfgfgf.com.tw/mzyy/  髮型圖片   中醫       http://www.gfgfgf.com.tw/zyxx/zyqy/  畢業感言佳句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|麦步官方论坛 ( 粤ICP备12052190号  

GMT+8, 2024-11-27 21:15 , Processed in 0.095477 second(s), 24 queries .

Powered by Discuz! X3.2

© 2012-2021 Comsenz Inc.

快速回复 返回顶部 返回列表