为什么Canvas.drawVertices在不传递Paint对象时抛出空指针异常?

时间:2012-04-26 21:00:54

标签: android android-canvas

根据[Canvas.drawVertices Javadoc](http://developer.android.com/reference/android/graphics/Canvas.html#drawVertices(android.graphics.Canvas.VertexMode,int,float [],int) ,float [],int,int [],int,short [],int,int,android.graphics.Paint))将null作为Paint传递是有效的,如果texs参数也是如此是null

  

paint 指定texs数组为非null时使用的着色器

使用drawVertices调用null方法进行绘制时,这将导致空指针异常。

1 个答案:

答案 0 :(得分:1)

因为内部调用

nativeDrawVertices(mNativeCanvas, mode.nativeInt, vertexCount, verts,
                   vertOffset, texs, texOffset, colors, colorOffset,
                  indices, indexOffset, indexCount, paint.mNativePaint);
如果paint为null,

paint.mNativePaint将导致NullPointerException。该医生忘了告诉你,这里的油漆不能为空:)

同样绘制没有绘画的顶点似乎不合逻辑,因为paint定义了线型等。文档没有说明paint is optional