//开启
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
View
目前在视图级别
无法启用
硬件加速
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);// 关闭
确定是否经过硬件加速
- 如果 View 已附加到硬件加速窗口,则 **View.isHardwareAccelerated() **会返回 true。
- 如果 Canvas 经过硬件加速,则**Canvas.isHardwareAccelerated() **会返回 true
不受支持的绘制操作
绘制模型(原理)
- 软件绘制:使用CPU绘制到Bitmap,然后把Bitmap渲染到屏幕
- 硬件绘制:CPU把绘制内容转换成GPU操作,由GPU负责真正的绘制
在硬件加速关闭的时候:
Canvas绘制的工作方式是:把要绘制的内容写进一个 Bitmap
,在之后的渲染过程中,这个 Bitmap的像素内容被直接渲染到屏幕。 这种绘制方式的主要计算工作在于把绘制操作转换为像素的过程,这个过程的计算是由 **CPU **来完成的。大致就像这样:
在硬件加速开启时:
Canvas的工作方式改变了:CPU只是把绘制的内容转换为GPU 的操作保存了下来,然后就把它交给 GPU,最终由 GPU 来完成实际的显示工作。大致是这样: