最简单的MTK平台窗口过渡特效
2009-09-26 17:52
92 查看
前几年随着MTK的迅速扩张,加入MTK平台的研发人员也达到了前所未有的水平.这给MTK带来的新的活力.为了提高公司竞争力,许多手机设计公司都是不惜代价的研发上下功夫,以其自己的产品能在市场与众不同.视觉特效正是在这样的情况下应运而生,最早的MTK手机人们一般都是在价格和硬件功能上下功夫,自从有了特效后,软件开始受到极大重视,当然另一方面也是因为手机上的价格与硬件使各个设计公司总裁的手机价格已经所差无几.当然,随着软件工程师对MTK平台的越来越熟悉,随之又引发了高仿机热潮.这是后话.
MTK平台的特效是十分丰富的,实现的方法也五花八门.一般来说,从应用上说,大致可以分为窗口特效和菜单特效两种.还有一些SP开发的花里胡哨的功能.不过不管使用什么技术或者算法,我所见过的,基本都是运用层实现的.要么把数据拷备到层上,先变形处理,再显示,要么直接把数据拷贝到层上,使用一些显示效果如通透,裁剪,移动层等技术实现,原则上都不是甚难.难度在于你能想到什么新花样或者金点子.
这里使用N年前曾经流行的WEB技术,帽子戴的有些高.如果是老网民,应该会记得网络过渡特效.早期的网络速度比慢,每次打开一个网络,总要等待很长时间。于是有一些聪明的家伙,就研制出了网页过渡特效,以减轻某些人在等待打开网页时的焦虑心情。当时基本效果一共有24种,至于哪二十四种,有兴趣的朋友自己研究。当然后来JS兴起时,使用JS做的过渡效果远远不止这个数。这里我们使用在网页中得到的灵感。做一个可以左右滑动过渡的窗口。
static S32 transition_effect_x, transition_effect_y, transition_effect_w, transition_effect_h;
void mmi_transition_effect(void)
{
if (g_pen_up_pos.x > g_pen_down_pos.x)
{
transition_effect_x = 0;
transition_effect_y = 0;
transition_effect_w += 16;
transition_effect_h = 320;
}
else
{
transition_effect_x -= 16;
transition_effect_y = 0;
transition_effect_w = 240;
transition_effect_h = 320;
}
gdi_layer_blt(bg_layer, base_layer, NULL, NULL, transition_effect_x,transition_effect_y,transition_effect_w-1, transition_effect_h - 1);
if (((transition_effect_w < 240) && (g_pen_up_pos.x > g_pen_down_pos.x))
|| ((transition_effect_x >= 0) && (g_pen_up_pos.x <= g_pen_down_pos.x)))
{
gui_start_timer(50, mmi_transition_effect);
}
else
{
gui_cancel_timer(mmi_transition_effect);
}
}
这个函数支持左右滑动,有想法的朋友可以自己再深入研究.
该函数用到的API都在我以前的有关层的文章中有介绍,也不再赘述.
MTK平台的特效是十分丰富的,实现的方法也五花八门.一般来说,从应用上说,大致可以分为窗口特效和菜单特效两种.还有一些SP开发的花里胡哨的功能.不过不管使用什么技术或者算法,我所见过的,基本都是运用层实现的.要么把数据拷备到层上,先变形处理,再显示,要么直接把数据拷贝到层上,使用一些显示效果如通透,裁剪,移动层等技术实现,原则上都不是甚难.难度在于你能想到什么新花样或者金点子.
这里使用N年前曾经流行的WEB技术,帽子戴的有些高.如果是老网民,应该会记得网络过渡特效.早期的网络速度比慢,每次打开一个网络,总要等待很长时间。于是有一些聪明的家伙,就研制出了网页过渡特效,以减轻某些人在等待打开网页时的焦虑心情。当时基本效果一共有24种,至于哪二十四种,有兴趣的朋友自己研究。当然后来JS兴起时,使用JS做的过渡效果远远不止这个数。这里我们使用在网页中得到的灵感。做一个可以左右滑动过渡的窗口。
static S32 transition_effect_x, transition_effect_y, transition_effect_w, transition_effect_h;
void mmi_transition_effect(void)
{
if (g_pen_up_pos.x > g_pen_down_pos.x)
{
transition_effect_x = 0;
transition_effect_y = 0;
transition_effect_w += 16;
transition_effect_h = 320;
}
else
{
transition_effect_x -= 16;
transition_effect_y = 0;
transition_effect_w = 240;
transition_effect_h = 320;
}
gdi_layer_blt(bg_layer, base_layer, NULL, NULL, transition_effect_x,transition_effect_y,transition_effect_w-1, transition_effect_h - 1);
if (((transition_effect_w < 240) && (g_pen_up_pos.x > g_pen_down_pos.x))
|| ((transition_effect_x >= 0) && (g_pen_up_pos.x <= g_pen_down_pos.x)))
{
gui_start_timer(50, mmi_transition_effect);
}
else
{
gui_cancel_timer(mmi_transition_effect);
}
}
这个函数支持左右滑动,有想法的朋友可以自己再深入研究.
该函数用到的API都在我以前的有关层的文章中有介绍,也不再赘述.
相关文章推荐
- 判断MTK平台手机主板芯片型号的简单方法
- MTK平台图片文件解析过程简单分析
- MTK平台图片文件解析过程简单分析
- 基于jQuery实现Div窗口震动特效代码-代码简单
- MTK平台图片文件解析过程简单分析
- Linux平台下编译运行wxWidgets简单窗口程序
- 判断MTK平台手机主板芯片型号的简单方法
- 基于jQuery实现Div窗口震动特效代码-代码简单
- MTK平台MMI窗口的绘制(转)
- MTK 图层 MTK平台MMI窗口的绘制
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- XNA Game Studio是一套有着强大功能和简单界面的游戏制作平台,游戏开发商和游戏玩家都可以使用这套工具开发针对Windows XP以及Xbox360的游戏,XNA Game Studio分为两种版本,一种是面向初学者的EXPRESS版本,还有一种是面向专业用户的专业版。用户使用EXPRESS版本开发游戏完全免费,并且可以随意在PC上发行,不过用该工具开发的游戏若是在360上网络发行,就需要交纳99美元的年费。
- Rop开发手册(6):最简单的服务开放平台框架
- 学习Extjs4 (2-1) 简单窗口
- MTK的IDLE窗口开发应几点经验
- T-Pot多蜜罐平台:让蜜罐实现更简单
- 窗口的简单布局(流式、边框、网格、卡片)
- mtk平台读写短信总结(载)
- javascript实现简单的分页特效
- 关于java窗口界面实现的简单流程(简易计算器)