变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當前位置:首頁文章首頁 IT學院 IT技術

Android 4.0硬件加速及繪制技巧

作者:  來源:  發布時間:2012-2-16 11:43:23  點擊:
  3.2.3 兼容性:使用軟件層類型會強制使一個view在軟件中被渲染。如果一個view是硬件加速的話(比如你設置整個應用程序是硬件加速的話),同時有渲染的問題,這是一種很簡單的方式來限制硬件繪制流程。

  3.3 View的層和動畫的關系

  當你的應用程序已經使用了硬件加速的話,硬件層能夠帶來更為快速和更為平滑的動畫效果。當對一個復雜的View進行動畫操作時,因為要進行很多的畫操作,所以并不可能總是能達到60幀每秒。在這種情況下可以通過硬件層來渲染為硬件紋理來提高性能。硬件紋理操作可以用作對一個view進行動畫操作,當進行動畫的時候可以減少對View自身頻繁的重繪。除非你改變這個view的屬性(調用invalidate()方法)或者你手動的調用invalidate()。如果在你的應用中運行一個動畫,但是并沒有得到你想要的平滑效果,可以考慮為你要動畫的view開啟硬件層。

  當一個View通過硬件層返回時,當所有的層疊加后最終的畫面顯示在屏幕時,View一些屬性會被同時被處理。設置這些屬性是十分有效率的,因為他們不需要View去invalidate和重繪。如下的屬性將影響層的疊加,設置這些屬性將會使View自動請求刷新,而且不需要對View進行重繪。

  ◆alpha: 改變層的透明度。

  ◆x, y, translationX, translationY: 改變層的位置

  ◆scaleX, scaleY: 改變層的大小

  ◆rotation, rotationX, rotationY:在3D空間內改變層的方向

  ◆pivotX, pivotY: 指定它進行變形的原點位置

  這些屬性是通過ObjectAnimator對象對一個view進行動畫操作時所使用的,如果你想訪問這些屬性,直接調用這些屬性的setter或者getter方法,例如想改變View的alpha則直接調用setAlpha()。如下的代碼片段顯示了一個View通過Y軸進行3D旋轉。

  view.setLayerType(View.LAYER_TYPE_HARDWARE, null); ObjectAnimator.ofFloat(view, "rotationY", 180).start();

  因為硬件層會消耗視頻的內存,強烈的推薦你在作動畫的時候啟用他們,當動畫完成了之后禁用他們,你可以通過動畫監聽來完成這些。代碼如下:

  View.setLayerType(View.LAYER_TYPE_HARDWARE, null); ObjectAnimator animator= ObjectAnimator.ofFloat(view, "rotationY", 180); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { view.setLayerType(View.LAYER_TYPE_NONE, null); } }); animator.start();

  Android 4.0提示和技巧

  切換到硬件加速2D圖形可以立即增強表現,但是你還是需要通過如下的建議來設計你的應用程序來更有效率的使用GPU。

  4.1 減少你程序中使用View的數量

  你系統中畫的view的數量越多,你的程序就會越慢,在軟件繪制的流程也是一樣的,減少view的數量是優化你UI的一個最簡單的方法。

  4.2 避免過多繪制

  不要過多的疊加層,當一個View被其他view完全遮擋住了的話,最好把被遮擋的view移除掉。如果你需要繪制不同的層做一個疊加效果的話,考慮把這些層合并為一個層。就現在的硬件來看,有一個好的經驗就是動畫的每幀不要繪制多余屏幕像素2.5倍的像素數量(bimap中的透明像素也計算在內)。

  4.3 不要在繪制的方法中創建繪制對象

  一個常見的錯誤就是當繪制方法被調用的時候,每次都要創建一個新的Paint或者Path。這將迫使垃圾回收器過于頻繁的運行,這將對緩沖和硬件的繪制造成影響。

  4.4 不要過于頻繁的修改形狀

  以復雜的shapes,path和旋轉為例,這些繪制都會用到紋理的遮罩。每當你創建或者修改一個path,硬件渲染過程都會創建一個新的遮罩,這耗費的代價是相當大的。

  4.5 不要過于頻繁的修改bitmap

  每當修改一次bitmap的內容,當你下次再繪制它的時候都會以GPU的紋理形式上傳一次。

  4.6 要小心使用alpha通道

  當你使用setAlpha ,AlphaAnimation或者ObjectAnimator設置一個View的透明效果時。它將需要2倍離屏的渲染緩沖填充率,當應用一個alpha到一個大的View上的時候,考慮設置view 層的類型為LAYER_TYPE_HARDWARE。

相關軟件

相關文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
主站蜘蛛池模板: 九九视频热 | 日韩有码第一页 | 视频一区二区中文字幕 | 可以看的黄网 | 网站在线观看你懂的 | 免费特级黄毛片在线成人观看 | 大片免费播放器免费观看 | 国产卡一| 在线视频国产一区 | 中文字幕无线码 | 欧美一级视频免费观看 | 日本免费影院 | 久久综合99 | 成人区精品一区二区不卡亚洲 | 香港三级网站 | 成人看片免费无限观看视频 | 国产免费人成在线看视频 | 精品日本一区二区 | 中文黄色片 | 国产成人免费午夜在线观看 | 日韩精品毛片 | 黄色影院免费观看 | 农村妇女又色黄一级毛片 | 国产1区2区在线观看 | 亚洲一区二区三区久久久久 | 亚洲精品高清国产麻豆专区 | 日韩欧美一区黑人vs日本人 | h肉动漫在线视频无修无遮挡 | 一个人看www在线高清免费看 | 欧美青青草 | 国产在线a不卡免费视频 | 亚洲成a人片在线观看 欧美 | 98精品国产高清在线看入口 | 欧美精品videossex变态 | 伊人久久亚洲综合天堂 | 欧美精品亚洲网站 | 日本高清一级片 | 在线观看一区二区三区视频 | 欧美成人一区二区三区 | 在线亚洲色图 | 在线观看成人 |