SmartRefreshLayout包裹RecyclerView出現背景變黑,原因是我在AndroidManifest.xml設置了
<application
android:hardwareAccelerated="false"/> //false關閉硬件加速 true打開硬件加速
這時我們將這個屬性設置爲true即可
application裏面android:hardwareAccelerated屬性設置false導致全局硬件加速關閉,網上搜索資料發現可以在Application、Activity、Window、View分別設置android:hardwareAccelerated屬性
控制硬加速
你可以在以下級別上分別控制硬加速:
Application中設置全局關閉硬件加速
<application android:hardwareAccelerated="false">
</application>
指定Activity中設置關閉硬件加速
<application android:hardwareAccelerated="true">
<activity android:hardwareAccelerated="false" />
</application>
Window(暫時用不得,感興趣的朋友可以自行百度)
View中使用
禁止某個View的硬件加速,注:當前不能在view級別設置硬件加速,view層有除禁止硬件加速之外的其它功能
view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
判段一個View是否能被硬加速,有時一個應用瞭解是否啓用了硬件加速是很有用的,對那些自定義View之類的東西尤其重要.在你的應用做了一些不被最新的管線所支持的自定義繪製時這更加重要.
有兩種方法可以檢查應用是否被硬件加速:
view.isHardwareAccelerated():如果View附加到一個硬件加速的window上就返回true.
canvas.isHardwareAccelerated():如果Canvas被硬件加速了就返回true.
如果你必須在你的繪製代碼中做這個,應使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().當一個view附加到一個硬件硬加速的window上,它仍可以使用非硬件加速的Canvas進行繪製操作.比如當爲了高速緩存而把一個view畫到一個bitmap中.