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

當前位置:首頁文章首頁 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
主站蜘蛛池模板: 久久久www免费人成看片 | 欧美激情一级 | 日韩欧美一区二区三区在线视频 | 欧美精品亚洲精品日韩专 | 在线黄色免费 | 另类视频在线 | 777久久 | 成年人免费观看网站 | 黄视频网站免费 | 亚洲一区二区中文 | 久久精品午夜视频 | 曰批全过程免费视视频观看 | 欧美一区二区三区在线播放 | 免费特黄级夫费生活片 | 亚洲国产成人在线视频 | 黄色网毛片| 羞视频在线观看 | 成人亚洲网站 | 男女很黄很色床视频网站免 | 毛片在线观看视频 | 最近2019中文字幕无吗 | 一级毛片高清免费播放 | 国产一区二区精品在线观看 | 日韩成人综合网 | 在线中文字幕亚洲 | 日本xxxxn1819| 日韩精品视频美在线精品视频 | 色婷婷婷丁香亚洲综合不卡 | 成年做羞羞免费观看视频网站 | 宅男在线 午夜影院 | 国产亚洲欧美日韩综合综合二区 | 手机看日韩 | 夜夜操夜夜骑 | 女性特黄一级毛片 | 午夜剧场操一操 | 色男人的天堂久久综合 | 久久精品视屏 | 在线日韩一区 | 天天摸夜夜摸狠狠摸夜夜摸 | 人妖三人交69欧美 | 中文字幕天天躁日日躁狠狠 |