花屏,某些控件背景被拉伸过多问题

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(); 


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