Android 之 硬件加速
16lz
2021-01-23
从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速使用GPU进行View上的绘制操作。
硬件加速可以在一下四个级别开启或关闭:
Application
Activity
Window
View
Application级别
往您的应用程序AndroidManifest.xml文件为application标签添加如下的属性即可为整个应用程序开启硬件加速:
<application android:hardwareAccelerated="true" ...>Activity级别
您还可以控制每个activity是否开启硬件加速,只需在activity元素中添加android:hardwareAccelerated属性即可办到。比如下面的例子,在application级别开启硬件加速,但在某个activity上关闭硬件加速。
<application android:hardwareAccelerated="true"> <activity ... /> <activity android:hardwareAccelerated="false" /></application>Window级别
如果您需要更小粒度的控制,可以使用如下代码开启某个window的硬件加速:
getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
注:目前还不能在window级别关闭硬件加速。
View级别
您可以在运行时用以下的代码关闭单个view的硬件加速:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
注:您不能在view级别开启硬件加速
硬件加速可以在一下四个级别开启或关闭:
Application
Activity
Window
View
Application级别
往您的应用程序AndroidManifest.xml文件为application标签添加如下的属性即可为整个应用程序开启硬件加速:
<application android:hardwareAccelerated="true" ...>Activity级别
您还可以控制每个activity是否开启硬件加速,只需在activity元素中添加android:hardwareAccelerated属性即可办到。比如下面的例子,在application级别开启硬件加速,但在某个activity上关闭硬件加速。
<application android:hardwareAccelerated="true"> <activity ... /> <activity android:hardwareAccelerated="false" /></application>Window级别
如果您需要更小粒度的控制,可以使用如下代码开启某个window的硬件加速:
getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
注:目前还不能在window级别关闭硬件加速。
View级别
您可以在运行时用以下的代码关闭单个view的硬件加速:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
注:您不能在view级别开启硬件加速
更多相关文章
- android TextView 属性
- ImageView的属性大全
- android 按钮设计中state_selected属性
- 在 Android 应用程序中使用 Internet 数据
- Linearlayout的android:divider属性
- SDK3.0 组件属性