手机中的屏幕流程都是顺序的,用户都是通过按键在屏幕之间切换。这里有三种类型的屏幕切换,即
1 向前移动 向下一个屏幕的切换作为用户按键输入的结果。
2 向后移动 向前一个屏幕的切换作为用户按键输入的结果。
3 异步事件的出现 屏幕向前或者向后切换依赖于异步事件例如协议事件?
在向前切换的过程中,在绘制新的屏幕之前,先前屏幕的内容被存储在history“数据库”中。如果当前
的屏幕用于接收用户的输入,而此时一个异步事件发生例如来电,那么当前用户输入内容的缓冲区将会被存在history中,当前屏幕就会显示当前事件屏幕,直到该事件完成才恢复先前的屏幕。
History的实现类似一个栈。一个新的history节点添加在这个栈的顶端。每一个history节点的机构如下
typedef struct _history
{
U16 scrn /* 将要存储的屏幕ID*/
FuncPtr entryFuncPtr; /* 入口函数指针,用于恢复屏幕时的重绘*/
U8 inputBuffer[MAX_INPUT_BUFFER]; /* 用于存储当前的input缓冲区*/
U8 guiBuffer[MAX_GUI_BUFFER]; /* 存储gui,一些图片数据*/
}
void AddHistory(history addHistory) 添加history到这个history数据栈。
包含头文件:FrameworkStruct.h
void DeleteNHistory(U16 DeleteCount) 从history数据栈中删除history节点
包含头文件:HistoryGprot.h
void GoBackHistory(void) 该函数删除history数据栈中的顶端节点并且执行该顶端节点的入口函数,重绘该顶端节点所关联的屏幕。(该顶端节点其实就是当前屏幕的前一个屏幕?)
包含头文件:HistoryGprot.h
U8 GetHistory(U16 ScreenID,history *ptrHistory)
U8 GoBackToHistory(U16 ScreenID)该函数删除所有的history节点,并且执行该ScreenID所指屏幕的入口函数
U8* GetCurrGuiBuffer(U16 ScreenID)该函数用于从传入参数ScreenID所联系的屏幕中获得Gui缓冲区内容。
分享到:
相关推荐
MTK屏幕入栈与出栈的管理(history管理) 1 从idle screen到main menu 屏幕的过程 2 从mainmenu 这个屏幕返回到idle屏幕的过程
History 管理浅谈.pdf
MTK 屏幕历史出入栈管理,详细描述了MTk屏幕历史出入栈的管理流程。
10A中的屏幕管理,不再像以前那样简单的管理一个数组,出栈入栈,而是维护一个树。具体的进\出屏幕会在文档中详细介绍。
mtk历史管理资料 History管理的作用。简言之,就是要保持窗口的外观状态
lcd驱动的c源文件 可以用在mtk的工程文件中能适应各种屏幕
论 MTK平台 屏幕切换 特效 本文是关于屏幕切换交流
MTK 历史管理的机制,详细描述了gonhistory 和 gobackhistory 以及其他接口的使用
MTK-call history initialize.电话相关
--纯MTK提供的内部培训资料版权属于MTK公司,仅供学习参考。
MTK平台历史管理机制介绍 重点详细地讲解了EntryNewScreen和GetCurrGuiBuffer的使用
MTK屏幕入栈与出栈的管理(history管理),从idle screen到main menu 屏幕及返回的过程
android高通与mtk平台thermal管理机制,描述了如何定制Thermal与如何解读Thermal。
MTK内存管理机制,讲述MTK平台是怎么进行内存的管理,希望大家喜欢
分析一下History管理机制与EntryNewScreen的关系
包含众多MTK中文件处理函数机详细使用说明```
怎样撰写自己的屏幕模板 提供了很详细的方法初学者的必备,如果你还为编写自己的模板而烦扰就用这个文档包你学会
MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK MTK
用于MTK功能机下的LCD+KEYPAD背光驱动控制。