成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析MTK層一些函數及應用

移動開發
MTK層可以在模擬器中調試,在模擬器上的TOOL菜單中的Info Monitor功能窗口,可以看到當前窗口由哪些層和各個層顯示的內容,但不包括你雖然創建了。

MTK層一些函數及應用是本文要介紹的內容,MTK 在窗口設計中應用十分廣泛,對于UI來說,沒有一個窗口不是由層構成的,最基本的窗口至少也是在基層上設計的。以至于許多時候,如果對層不甚了解,連閱讀代碼有時也會遇到困難。我曾經寫過一些有關層的使用的基礎知識,由于有關這方面資料很少,許多時候只能在模擬器上打斷點自己慢慢研究。

MTK層可以在模擬器中調試,在模擬器上的TOOL菜單中的Info Monitor功能窗口,可以看到當前窗口由哪些層和各個層顯示的內容,但不包括你雖然創建了,但沒有調用函數gdi_layer_blt或者與他gdi_layer_blt相類似函數刷到窗口上的層。

處理PNG有關的函數

  1. gdi_push_and_set_alpha_blending_source_layer  
  2. gdi_pop_and_set_alpha_blending_source_layer  
  3. gdi_set_alpha_blending_source_layer  
  4. gdi_get_alpha_blending_source_layer 

這一組函數是在層上繪制PNG圖片時使用,是PNG函數的專用函數,可以有效還原PNG圖片的效果,前兩個函數是成對使用,后一個函數作用同前兩個,但使用上更自由一些,如果超過兩個層,每個層都要畫PNG,無疑使用gdi_set_alpha_blending_source_layer更加方便。最后一個是獲取BLENDING層。

設置層的位置

  1. gdi_layer_set_position 

如果層上的數據是經過十分復雜的運算過程得出來的,比如要在IDLE上顯示一個可以使用手指移動的農歷是日歷,這時就可以在層上畫好要顯示的數據,通話移動層的位置實現移動效果,要比每次重繪日歷要快捷的多。

合并到BASE層

  1. gdi_layer_flatten_previous_to_base 

類似的函數還有

  1. gdi_layer_flatten 

前者是把當前窗口數據合并到基層,后者是把指定的層合的激活層上,該函數常常在退出窗口時使用,如果你見有些窗口在彈出對話框時該窗口背景突然消失,那大約就是因為未使用該函數的原因。因為MTK的很多窗口都不是單一層,更關鍵的是在創建新窗口時有時會釋放老窗口的層資源,導到在老窗口非基層的顯示數據丟失。該函數使用我們可以使用超過四個層來創建更為復雜的效果。

添加DM層

  1. dm_add_blt_layer 

有時你創建了層,激活了層,在層上也繪上了圖片,也調用刷屏函數了,但你總是看不到屏上顯示你的層,在模擬器中的Info Monitor窗口也看不到你的層,有時是你的層閃了一下就沒影了,這時你就要研究dm_redraw_category_screen了,該函數做為大部分窗口的刷新函數,當窗口有變化時,就會執行該函數,而該函數中有一段類似如下的函數調用:

  1. gdi_layer_blt(  
  2. dm_layers[0],  
  3. dm_layers[1],  
  4. dm_layers[2],  
  5. dm_layers[3],  
  6. dm_cat_scr_info.x1,  
  7. dm_cat_scr_info.y1,  
  8. dm_cat_scr_info.x2 - dm_cat_scr_info.x1 - 1,  
  9. dm_cat_scr_info.y2 - dm_cat_scr_info.y1 - 1); 

該調用會重新刷屏,很遺憾的是,你新創建的層不在數組dm_layers中,也就不在他刷新的范圍內。要么調用dm_add_blt_layer把你的層加入,要么在dm_redraw_category_screen之后再把你自己的層刷到屏上。

使用外部內存創建層med_alloc_ext_mem當然類似函數也有很多,如mmi_frm_scrmem_alloc

確切的說,這兩個函數都不能算是LAYER的函數,但如果你要使gdi_layer_create_using_outside_memory創建層,卻少不了這兩個函數。在這兩個函數中,我們常常調用med_alloc_ext_mem來分配內存,是因為該函數能提供大約400K左右內存可供調用,而 mmi_frm_scrmem_alloc可以提供200~300K內存可供調用。但隨著MTK手機淪為SP賺錢工具后,使用 med_alloc_ext_mem分配內存越來越不安全。在之前的一次設計中,出了問題,多虧公司一高手指點,才消滅了這一處使用的隱患。

保存到文件

  1. gdi_layer_save_jpeg_file  
  2. gdi_layer_save_pbm_file  
  3. gdi_layer_save_bmp_file 

小結:解析MTK層一些函數及應用的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-03-15 17:46:43

2010-03-24 18:27:27

無線mesh網絡應用

2011-09-06 14:10:18

MTK系統時間

2009-12-11 11:09:12

PHP信息函數

2009-09-23 17:29:54

三層框架

2011-07-26 17:43:49

Xcode SVN

2024-12-27 10:51:53

2013-08-27 13:24:46

App Store應用上傳應用截圖ASO應用商店優化

2022-04-02 14:43:59

Promethues監控

2023-10-09 08:14:10

Helm管理應用

2010-08-05 13:54:36

NFS協議

2021-02-06 14:25:29

Java延遲加載代碼

2010-05-25 17:00:04

Java WebWeb容器Web應用

2010-06-11 09:19:23

jQuery

2011-04-14 09:15:21

Java Web應用開發

2022-02-28 15:05:17

ArkUIHarmonyOS鴻蒙

2023-08-01 23:08:07

2011-07-19 13:49:19

Objective-C 數據類型

2011-09-01 15:39:43

QT數據庫

2018-06-21 14:50:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩小视频在线 | 久久一区二区视频 | 成人在线播放网站 | 久久区二区 | 毛色毛片免费看 | 午夜天堂精品久久久久 | 日韩成人在线免费视频 | 91精品国产综合久久久动漫日韩 | 男女下面一进一出网站 | 亚洲第一区国产精品 | 亚洲一区二区免费看 | 久久亚洲欧美日韩精品专区 | 国产激情一区二区三区 | 色播久久久| 久久精品亚洲 | aaaaaa大片免费看最大的 | 日韩中文字幕 | 国产 欧美 日韩 一区 | 羞羞网站在线免费观看 | 国产亚洲成av人片在线观看桃 | 伊人在线 | 91视频在线| 久久久久免费观看 | 国产欧美日韩视频 | 日本午夜一区 | 欧美视频一级 | 国产精品美女久久久久久久网站 | 日韩欧美中文字幕在线观看 | 国产福利精品一区 | 成人在线免费视频 | 国产精品一区二区无线 | 日韩视频在线一区二区 | 久久久久黑人 | 久久久国产一区二区三区 | 国产精品视频网 | 日韩视频一区二区 | 国产98色在线 | 日韩 | 亚洲欧美成人影院 | www亚洲精品 | 国产成人精品视频在线观看 | 亚洲深夜福利 |