MTK 层的基础知识.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. gdi_layer_clear () 将整个层刷成单一颜色(层激活后要立即执行)。 2. gdi_layer_set_source_key () 将某一颜色设为层的通透色,在层合并的时候,系统会自动将层与通透色相同的颜色忽略掉(就是说这一点上看到的是底下层的颜色) gdi_layer_set_source_key(TRUE,GDI_COLOR_BLUE); 3. gdi_layer_create(20,20,136,130, my_layer); 用来创建层,其前四个参数指出层的位置及大小(位置是以实际屏幕左上角为原点的),最后一个参数时刚创建的层句柄地址,用以返回所创建的层。(要注意一点的是,应为创建层时系统要为其分配动态内存空间,而系统保留的内存一般只够创建一个 UI_device_width * UI_device_height 大小的层,所以如果调用 gdi_layer_create 时内存不足系统就会 ASSERT 。解决的办法是使用函数 gdi_layer_create_using_outside_memeory, 即自己申请内存,然后作为参数传进去创建层。 ) 4. gdi_layer_set_active(my_layer); 任何时刻有且只能有一个层处于激活状态,所有的绘画函数都是默认画到这个层中(激活层中),所以想要在层上绘画必须先将其激活。创建层并不会自动激活,需要手动将其激活。 不过,由于在多层的处理中需要在各个层之间切换激活,所以我们经常用到的是 gdi_layer_push_and_set_active(gdi_handle handle) ,此函数会把当前的激活层入栈而激活参数层,等到下次需要激活栈中的层时,只需要用函数 gdi_layer_pop_and_restore_active() 激活就可以了。 5. gdi_layer_get_base_handle(base_layer); 获取基础层 gdi_layer_set_active(base_layer);// 主动将基础层还原为激活状态 gui_BLT_double_buffer(0,0,UI_device_width -1, UI_device_height -1); 6. gui_BLT_double_buffer () 用来合并层,但在使用之前先得用gdi_layer_set_blt_layer(base_layer,my_laye,NULL,NULL); 指明是哪几个层需要合并,函数gui_BLT_double_buffer 能接受四个层句柄,也就是说我们系统同一时刻最多能合并四个层(当然创建的层可以不止这个数)。另外要注意参数的顺序,第一个传入的层是放在最底下的,然后依次往上码。也可以直接用函数gdi_layer_blt_(base_layer,my_laye,NULL,NULL ,0,0,UI_device_width -1, UI_device_height -1); 进行图层合并。效果一样。 7. gdi_layer_set_clip(40,25, 100, 100); 所谓剪切,就是在层中设一个限制区域,只有在这个区域中的绘画才是有效的,否则就会被自动忽略。剪切特效有两个特点:1 ,每个层一定有而且只能有一个剪切区域。2 ,剪切区域一经设置,永久生效。所有剪切区域用完后最后用gdi_layer_reset_clip 还原(如不还原则有可能什么东西都画不上来)。 8. gdi_layer_set_opacity(TRUE, 128); 第一个参数指明要不要开启半透明效果,第二个参数是透明度的取值,范围从0 至255 ,值越小表示透明度越高,当取值为0 时就会完全被透掉,255 即完全不透明。 9. gdi_layer_free(my_layer); 创建层需要为其分配内层空间,所以层用完后也要手动将其释放(切记一定要释放,否则别的程序就无法创建层了): 10. gui_lock_double_buffer(); 和gui_unlock_double_buffer(); 锁屏 11. gdi_layer_clear_background(GDI_COLOR_RED); // 把背景全刷成红色 12. 剪切区的使用:使用顺序: gui_push_clip();// 保存剪切区 gui_set_clip(0, 0, MEEPOMENU_TEMP_LAYER_WIDTH - 1, MEEPOMENU_TEMP_LAYER_HEIGHT - 1);// 设置剪切区

文档评论(0)

16588ww + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档