详解MTK特效制作方法

移动开发
MTK特效制作方法是本文要介绍的内容,主要是来了解并学习MTK的应用使用方法,具体内容的实现来看本文详解。

MTK特效制作方法是本文要介绍的内容,主要是来了解并学习MTK的应用使用方法,具体内容的实现来看本文详解。

在WIN图像编程或者FLASH制作过程中,百页窗是最简单也是人们最常表演的特效.了解了核心算法,也就可以很容易的使用在MTK的屏幕切换中。

  1. for(i=0;i  
  2. {  
  3. my_gdi_layer_bitblt(Transition_Effect_layer,i*(UI_device_width/frame_num),0,  
  4. g_step_w,UI_device_height,bg_layer,i*(UI_device_width/frame_num),0);  

变量frame_num;是百叶窗的页数,Transition_Effect_layer是特效层,bg_layer是新窗口的层.核心函数在于这个层的拷贝函数.有关这个函数的代码,功能和用法,有兴趣的朋友可以参考我的另一篇专门介绍层拷贝的函数的文章.

对于MTK平台来说,菜单和屏幕特效曾经在很长的一段时间里,影响甚远。

但对于其设计过程和方法,由于各种各样的原因,很少有人提及。

这里介绍一种不同于前几天日志所载之方法的另一种方法,就是合并图层,其核心实现函数如下。

  1. voidmy_gdi_layer_copy(gdi_layer_struct*dst_layer,intdst_x,intdst_y,intwidth,intheight,  
  2. gdi_layer_struct*src_layer,intsrc_x,intsrc_y)  
  3. {  
  4. U16*dst_buf,*src_buf;  
  5. inti;  
  6. if(dst_x<0||dst_y<0||dst_x+width>dst_layer->width||dst_y+height>dst_layer->height)  
  7. {  
  8. if(dst_x<0)  
  9. {  
  10. width-=-dst_x;  
  11. src_x+=-dst_x;  
  12. dst_x=0;  
  13. }  
  14. if(dst_y<0)  
  15. {  
  16. height-=-dst_y;  
  17. src_y+=-dst_y;  
  18. dst_y=0;  
  19. }  
  20. if(dst_x+width>dst_layer->width)  
  21. {  
  22. width=dst_layer->width-dst_x;  
  23. }  
  24. if(dst_y+height>dst_layer->height)  
  25. {  
  26. height=dst_layer->height-dst_y;  
  27. }  
  28. }  
  29. if(src_x<0||src_y<0||src_x+width>src_layer->width||src_y+height>src_layer->height)  
  30. {  
  31. if(src_x<0)  
  32. {  
  33. width-=-src_x;  
  34. dst_x+=-src_x;  
  35. src_x=0;  
  36. }  
  37. if(src_y<0)  
  38. {  
  39. height-=-src_y;  
  40. dst_y+=-src_y;  
  41. src_y=0;  
  42. }  
  43. if(src_x+width>src_layer->width)  
  44. {  
  45. width=src_layer->width-src_x;  
  46. }  
  47. if(src_y+height>src_layer->height)  
  48. {  
  49. height=src_layer->height-src_y;  
  50. }  
  51. }  
  52. if(width<=0||height<=0)  
  53. return;  
  54. dst_buf=(U16*)dst_layer->buf_ptr+dst_y*dst_layer->width+dst_x;  
  55. src_buf=(U16*)src_layer->buf_ptr+src_y*src_layer->width+src_x;  
  56. for(i=0;i  
  57. {  
  58. memcpy(dst_buf,src_buf,width*2);  
  59. dst_buf+=dst_layer->width;  
  60. src_buf+=src_layer->width;  
  61. }  

有兴趣的朋友可以自己利用该函数研发各种各样的变化效果。

这个函数,加上我前一段时间提供的另一种方法,大致可以制作二十种左右的效果。

小结:详解MTK特效制作方法的内容介绍万能了,希望通过MTK应用内容的学习能对你有所帮助。

责任编辑:zhaolei 来源: 互联网
相关推荐

2009-06-10 16:32:45

MyEclipseEclipse绿色版

2015-06-11 09:59:41

jquery翻译jquery插件制作

2011-07-20 16:03:48

iPhone PXL 安装包

2010-08-17 10:48:12

Div CSS实例

2017-11-13 13:06:32

表情包草图表情

2009-09-15 09:23:35

初级linuxLinuxlinu操作系统x后门

2010-06-29 09:55:41

嵌入式Linux文件系统

2011-04-26 16:29:48

喷墨打印墨盒喷打堵头

2011-09-05 17:35:18

MTK启动过程RTOS

2011-09-06 09:26:03

2017-12-24 22:52:49

微信小程序圣诞

2011-08-30 16:02:10

MTK开发环境

2011-09-05 19:02:45

MTK系统字符串

2011-08-31 10:20:26

MTK驱动开发

2011-08-31 10:37:06

MTK开发入门

2011-09-05 17:27:13

MTK驱动调试GPIO

2011-08-30 16:32:41

MTK开发环境

2010-10-08 14:04:10

JavaScript网

2011-08-31 10:23:40

MTK平台列表控件

2012-05-24 11:03:55

HTML5
点赞
收藏

51CTO技术栈公众号