硬體加速不只是好處,也有它的限制:受到 gpu 繪製方式的限制,canvas
的有些方法在硬體加速開啟式會失效或無法正常工作。比如,在硬體加速開啟時,clippath()
在 api 18 及以上的系統中才有效。具體的 api 限制和 api 版本的關係如下圖:
根據hencoder的結論展示,結果如下:
所以,如果你的自定義控制項中有自定義繪製的內容,最好參照一下這份**,確保你的繪製操作可以正確地在所有使用者的手機裡能夠正常顯示,而不是只在你的執行了最新版本 android 系統的 nexus 或 pixel 裡測試一遍沒問題就發布了。小心被祭天。
不過有一點可以放心的是,所有的原生自帶控制項,都沒有用到 api 版本不相容的繪製操作,可以放心使用。所以你只要檢查你寫的自定義繪製就好。
如果你的**剛好不支援,那麼加上這句,這樣可以關閉硬體加速
view.setlayertype(layer_type_software, null);
Android 硬體加速
開啟或關閉硬體加速 由於硬體加速自身並非完美無缺,所以android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速 activity級別 window級別 getwindow setflags windowmanager.layoutparams.flag hard...
Android硬體加速
android從3.0 apilevel11 開始,在繪製view的時候支援硬體加速,充分利用gpu的特性,使得繪製更加平滑,但是會多消耗一些記憶體。開啟或關閉硬體加速 由於硬體加速自身並非完美無缺,所以android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速 ...
Android硬體加速
從android3.0 api level 11 開始,支援硬體加速,可充分利用gpu的特性,使得介面渲染更加平滑。但是硬體加速自身並非完美,在某些webview版本上,比如android5初期的一些rom上的webview版本是chrome37 38版本,由於其本身的硬體加速策略的bug,導致 稍...