Android在多边形上绘制位图

时间:2011-01-04 10:17:24

标签: android opengl-es canvas

我试图在多边形上绘制一个位图,其边数超过4.我正在处理opengl这样做但我在2d中意识到在Canvas中有一个名为drawBitmapMesh的方法。它适用于4侧多边形,但不适用于5。 这工作

float verts[] = {0,0, 0,10, 0,20 ,0,30, 10,0, 10,10, 10,20, 10,30, 20,0, 20,10, 20,20, 20,30, 30,0, 30,10, 30,20, 30,30};
canvas.drawBitmapMesh(bitmap, 3, 3, verts, 0, null, 0, null);

这不起作用会产生运行时错误。

float verts[] = {0,0, 0,10, 0,20 ,0,30, 0,40, 10,0, 10,10, 10,20, 10,30,10,40, 20,0, 20,10, 20,20, 20,30,20,40, 30,0, 30,10, 30,20, 30,30,30,40};
canvas.drawBitmapMesh(bitmap, 4, 4, verts, 0, null, 0, null);

1 个答案:

答案 0 :(得分:2)

来自SDK documentation

  

verts x,y对的数组,指定应绘制网格的位置。数组中必须至少有(meshWidth + 1)*(meshHeight + 1)* 2 + meshOffset值

你的数组中有38个值,而上面的参数计算给出:(4 + 1)*(4 + 1)* 2 + 0 = 50个值......