硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4162|回复: 1
收起左侧

[emWin] 启动界面位图刷新问题

[复制链接]

6

主题

4

回帖

6

积分

新手上路

积分
6
发表于 2015-5-15 12:58:07 | 显示全部楼层 |阅读模式
大家好,我正在设计一个UI界面,程序启动时希望有一个启动界面,现在的做法参考armfly开发例程中的启动界面程序,调用一个桌面回调函数对一个矩形区域进行刷新,源程序是在回调函数里进行背景刷新和位图刷新,现在我是使用jpg图片作为背景的,如果采用原来的方法每次刷新图片和位图,由于刷新时间较长,会出现抖动现象,所以想着可以先绘制背景图片,然后只对位图进行刷新,不知道这样应该怎么实现?劳烦哪位大神帮忙下,谢啦!代码如下所示:

void Startup(void)
{
         uint8_t loop = 16 ;
         GUI_RECT Rect = {347, 307, 453, 317};

         /* éèÖÃ×àÃæ′°¿úμÄ»Øμ÷oˉêy */
         WM_SetCallback(WM_HBKWIN, _cbBk_logo);

//      GUI_DrawGradientV(0, 0, LCD_GetXSize()-1, LCD_GetYSize() - 1, GUI_BLUE, GUI_WHITE);
//      GUI_DrawBitmap(&bmlogo_bdtech , (LCD_GetXSize() - bmlogo_bdtech .XSize)/2 , (LCD_GetYSize() - bmlogo_bdtech .YSize)/2);
         GUI_JPEG_Draw(StartUp, sizeof(StartUp), 0, 0);

         /* éèÖÃÆô¶ˉ½çÃæμĶˉì¬ÏÔê¾ */
         while (loop--)
         {
                   idx = (16- loop) % 5;
                   /* èÃÖ¸¶¨ÇøóòÎTD§′ó¶ø′¥·¢»Øμ÷oˉêyμÄWM_PAINTÖØ»æÏûÏ¢ */
                   WM_InvalidateArea(&Rect);
                   GUI_DrawRectEx(&Rect);
                   GUI_Delay(200);
         }
}

/*
*********************************************************************************************************
*       oˉ êy Ãû: _cbBk
*       1|ÄüËμÃ÷: ×àÃæ′°¿úμÄÖØ»æoˉêy
*       DΠ   2ΣopMsg  WM_MESSAGEààDíÖ¸ÕëμØÖ·
*       ·μ »Ø Öμ: ÎT
*********************************************************************************************************
*/
static void _cbBk_logo(WM_MESSAGE * pMsg)
{
         uint16_t   xPos, Step = 20, i;
         const GUI_BITMAP * pBm;

         switch (pMsg->MsgId)
         {
                   /* ×àÃæ′°¿úμÄÖØ»æ */
                   case WM_PAINT:
                  
                            for (i = 0, xPos = LCD_GetXSize() / 2 - 2 * Step; i < 5; i++, xPos += Step)
                            {
                                     pBm = (idx == i) ? &_bmWhiteCircle_10x10 : &_bmWhiteCircle_6x6;
                                     GUI_DrawBitmap(pBm, xPos - pBm->XSize / 2, 312 - pBm->YSize / 2);
                            }
                            break;      
                           
         }
}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-5-15 16:48:29 | 显示全部楼层
只刷位图是不行的,除非你的硬件支持双图层。



为什么不设计一个GIF图片,这样更方便。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-12 15:59 , Processed in 0.219784 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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