在使用menudrawer和webview結合使用時,發現當關閉menudrawer選單沒有選擇任何項時,在webview中顯示的內容會出現問題,view錯位(開啟選單時沒有顯示的區域還是沒有顯示),經過找度娘,詢問谷哥,終於找到問題的癥結,最後為view新增了乙個關閉硬體加速,解決了問題。
在android 4.0的某些裝置上,在view重新整理時會出現花屏和螢幕上的某些view錯位的現象。 經過調查後發現adb logcat中出現很多openglrenderer: 0x501的錯位:
09-18 14:34:39.090: debug/openglrenderer(3104): gl error from openglrenderer: 0x501
從這個日誌,初步懷疑是硬體加速導致的問題。 經過分析發現使用了比較複雜的自定義view,可能會導致硬體加速渲染出錯。
硬體加速的優點與缺點
硬體加速能使用gpu來加速2d影象的渲染速度,但是硬體加速並不能完全支援所有的渲染操作, 針對自定義的view,硬體加速可能導致渲染出現錯誤。 如果有自定義的view,需要在硬體加速的裝置上進行測試,如果出現渲染的問題,需要關閉硬體加速。
開啟和關閉硬體加速
對硬體加速的開關可以在不同的級別進行控制:
activity
windows
view
可以對單個的activity控制是否啟用硬體加速:
window級別
getwindow().setflags( windowmanager.layoutparams.flag_hardware_accelerated, windowmanager.layoutparams.flag_hardware_accelerated);
view級別
在指定的view上關閉硬體加速:
myview.setlayertype(view.layer_type_software, null);
或者使用android:layertype="software"來關閉硬體加速:
原帖:android:layertype 關聯方法: setlayertype(int,paint) 屬性說明: "設定指定層的型別,可以取以下3個值: none——不指定 software——軟體層。 hardware——硬體層。使用硬體加速。" 我執行了你的**,沒有報錯。你在eclipse中使用快捷鍵ctrl+shift+f格式化下,再檢查下**看看。
android 硬體加速的缺點
硬體加速不只是好處,也有它的限制 受到 gpu 繪製方式的限制,canvas的有些方法在硬體加速開啟式會失效或無法正常工作。比如,在硬體加速開啟時,clippath 在 api 18 及以上的系統中才有效。具體的 api 限制和 api 版本的關係如下圖 根據hencoder的結論展示,結果如下 所...
硬體加速 Pr開始支援A卡硬體加速
上週,amd正式推出旗下針對專業工作站平台的高效能處理器執行緒系列者pro系列,而聯想p620台式工作站更是對該系列處理器進行了首發。不過,該工作站配備的是英偉達顯示卡。由於amd顯示卡也是從近兩年才開始翻身,因此在專業軟體的支援方面稍顯落後。以如今使用最為廣泛的premiere pro軟體為例,其...
Android 硬體加速
開啟或關閉硬體加速 由於硬體加速自身並非完美無缺,所以android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速 activity級別 window級別 getwindow setflags windowmanager.layoutparams.flag hard...