HenCoder Android 自定義 View 1-8 硬件加速
硬件加速能夠讓繪制變快,主要有三個原因:
1.本來由 CPU 自己來做的事,分攤給了 GPU 一部分,自然可以提高效率;
2.相對于 CPU 來說,GPU 自身的設計本來就對于很多常見類型內容的計算(例如簡單的圓形、簡單的方形)具有優勢;
3.由于繪制流程的不同,硬件加速在界面內容發生重繪的時候繪制流程可以得到優化,避免了一些重復操作,從而大幅提升繪制效率。
所有的原生自帶控件,都沒有用到 API 版本不兼容的繪制操作,可以放心使用。所以你只要檢查你寫的自定義繪制就好。
如果你的繪制操作不支持硬件加速,你需要手動關閉硬件加速來繪制界面,關閉的方式是通過這行代碼:
view.setLayerType(LAYER_TYPE_SOFTWARE, null);
View Layer 可以加速無 invalidate() 時的刷新效率,但對于需要調用 invalidate() 的刷新無法加速。
view.animate()
.rotationY(90)
.withLayer(); // withLayer() 可以自動完成上面這段代碼的復雜操作