花屏,某些控件背景被拉伸過多問題

1)問題:

Android開發中某個界面出現了花屏,某些控件背景被拉伸過多遮住了其他控件。

2)原因:

硬件加速引起。

具體分析:Android從3.0開始引進硬件加速,4.0開始硬件加速在Application層默認開啓,硬件加速使用GPU進行繪圖,旨在得到更加平滑的動畫和更加平滑的滾動,和更好的總體性能和相應用戶的交互。但是硬件加速並不能完美的支持所有的繪圖,不能支持的通常表現爲內容不可見、異常或者渲染錯誤

3)關閉/打開方法:

1、Application層(可關閉、可打開,4.0以上默認打開):

    在Manifest文件中進行關閉如下:

<application android:hardwareAccelerated="true" ...>

2、Activity層(可關閉、可打開):

    在Manifest文件中進行關閉如下:

    <activity android:hardwareAccelerated="false" />  

3、Window層(只能打開):

getWindow().setFlags(
   WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
   WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

4、View層(只能關閉,決定權最高,可覆蓋上面的三個權限):

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

4)判斷是否採用了硬件加速:

1、View:

view.isHardwareAccelerated(); 

2、Canvas:

canvas.isHardwareAccelerated(); 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章