您的位置:首页 > 产品设计 > UI/UE

UCGUI学习之路(5)MemDev

2017-10-30 18:26 253 查看
LCD液晶屏上有动画的时候,一般都需要高频刷新屏幕。

如果不使用MemDev,而按传统方法做动画效果,屏幕会闪烁,效果不好。

MemDev的使用是为了上述情况引起的闪烁。

其原理在于,先把这一帧到下一帧的显示过程在内存中预演。把生成的最终结果,再刷新到屏幕上。这样一来屏幕的显示内容变化次数降到最低。直接输出需要显示的内容。有效的避免了闪烁。

我也做了个实验,在一块屏幕上,对比两种效果,一目了然。



视频演示如下:

http://v.youku.com/v_show/id_XMzEyMTY2MTc0NA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

MemDev在代码中的使用也很简单:

创建GUI_MEMDEV_Create();

选择GUI_MEMDEV_Select();

界面修改过程

显示GUI_MEMDEV_CopyToLCD();

清楚GUI_MEMDEV_Clear();

如果不使用了,就删除GUI_MEMDEV_Delete();

源码关键部分:

GUI_MEMDEV_Handle mh;//申请一个变量放句柄

mh = GUI_MEMDEV_Create(0, 30, 240, 145);
GUI_MEMDEV_Select(mh);//选择使用

GUI_SetColor(GUI_RED);//这5行是改变过程
GUI_FillCircle(posx,90,30);
GUI_SetColor(GUI_YELLOW);
GUI_SetTextMode(GUI_TEXTMODE_TRANS);
GUI_DispStringAt("Hello World",20,70);

GUI_MEMDEV_CopyToLCD(mh);//把上述过程的结果输出
GUI_MEMDEV_Clear(mh);//清除内存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息