Android图形---硬件加速(Hardware Acceleration)(三)

不被硬件加速所支持的绘图操作

在硬件加速的时候,2D渲染管道支持大多数的通常用于Canvas的绘图操作,以及一些很少使用的操作。被用于渲染应用程序的所有的绘图操作都有发送给Android系统,默认的Widget和布局,以及一些常用的可视效果,如反射和瓷砖的纹理效果都是被支持的。以下列出了已知的不支持硬件加速的操作:

1. Canvas

chipPath()

chipRegion()

drawPicture()

drawPosText()

drawTextOnPath()

drawVertives()

2. Paint

setLinearText()

setMaskFilter()

setRasterizer()

另外,还有一些操作行为会因启用了硬件加速而不同:

1. Canvas

clipRect():硬件加速会忽略XOR、Difference和ReverseDifference三种剪辑模式,3D变换不适用于剪辑矩形。

drawBitmapMesh():硬件加速会忽略颜色数组。

drawLines():硬件加速不支持抗锯齿处理。

setDrawFilter():硬件加速能够被设置,但是会被忽略。

2. Paint

setDither():硬件加速会忽略其设置。

setFilterBitmap():位图过滤是始终打开的。

setShadowLayer():该项设置只对文本有效。

3. ComposeShader

ComposeShader对象只能包含不同类型的着色器(例如,BitmapShader和LinearGradient,但是不能够包含两个BitmapShader对象的实例)。

ComposeShader对象不能够包含一个ComposeShader对象。

如果应用程序受到这些错误的功能或限制的影响,那么能够通过调用setLayerType(View.LAYER_TYPE_SOFTWARE, null)方法针对应用程序受到影响的部分来关闭硬件加速。这种方法,依然还能够在其他的地方利用硬件加速。

你可能感兴趣的:(android,null,图形)