【MTK MMI代码入门】MTK(MediaTek)平台的用户界面开发主要涉及到MMI(Man Machine Interface)代码,这是对设备与用户交互界面的一种控制机制。本文将简单介绍MTK MMI代码的基础知识,帮助开发者理解MTK平台上层开发的核心概念。 MTK平台的窗体重画机制是通过`dm_redraw_category_screen()`函数实现的。这个函数负责根据窗体模板ID获取组件及其属性,并调用相应的接口绘制各个组件。模板ID在整个过程中起着关键作用,它是识别不同窗体界面的标识。 1. 模板ID的传递: 模板ID在`ShowCategory.Screen()`函数中作为要显示界面的编号,不同于`EntryNewScreen(scrID, ...)`函数中传入的窗口ID。模板ID以"MMI_"为前缀,存储在枚举型结构`MMI_CATEGORY_ID_LIST`中。这些ID通过`dm_data_struct`结构体和全局变量`g_dm_data`在程序中被广泛使用。`dm_data_struct`结构体包括三个成员:当前窗口ID `s32ScrId`、模板ID `s32CatId`和标志变量`s32flags`。模板ID通常在显示特定模板的函数中设置,如`ShowCategory6Screen()`,并通过`dm_setup_data()`函数传递到全局变量`g_dm_data`中。 2. 组件与属性的关联: 窗体组件及其属性与模板ID的关联主要通过一个大型的结构体数组`g_categories_controls_map`实现。这个数组包含了`dm_category_id_control_set_map_struct`结构体,结构体的每个元素分别包含模板ID、组件数组首地址、默认属性数组首地址和旋转属性数组首地址。`dm_search_control_set()`和`dm_search_coordinate_set()`函数通过模板ID在结构体数组中查找对应的组件集合和属性集合。 接着,我们讨论构成窗体的组件定义。每个窗体组件的定义与模板ID通过`dm_category_id_control_set_map_struct`结构体进行关联。结构体的第二个成员`control_set_p`指向一组组件定义,而第三个和第四个成员分别指向组件的默认属性和特殊属性。这样,通过结构体数组的索引,系统能够找到并处理对应模板的所有组件及其属性。 总结起来,MTK MMI代码入门涉及的关键点包括: - 窗体重画机制:通过`dm_redraw_category_screen()`函数实现。 - 模板ID的传递:从显示函数传递到全局变量`g_dm_data`。 - 组件与属性的关联:`g_categories_controls_map`结构体数组存储了组件信息。 - 窗体组件定义:与模板ID通过`dm_category_id_control_set_map_struct`结构体关联。 理解这些核心概念对于在MTK平台上进行用户界面开发至关重要,这有助于开发者创建和管理动态、交互式的用户界面。
剩余20页未读,继续阅读
- kanatabig2013-05-24书还可以,不过现在用不上了
- 粉丝: 136
- 资源: 25
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助