All you need to understand the DrawBitmapMesh function can be found in the Android developer documentation. See Android Developer Documentation .
However, I will explain it here in my own words. Function Syntax:
public void drawBitmapMesh (Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint)
A bitmap is the bitmap that you want to use. Now imagine a grid above a bitmap with meshWidth + 1 point along the lines of the image and meshHeight + 1 points to the columns of the bitmap. You specify these points or vertices in the verts variable. They are entered in a string format, which means that you enter vertices in vert from left to right for row 1, then from left to right for row 2, etc., i.e. if we have 4 x 4 points, then we have something like this:
* 01 * 02 * 03 * 04
* 05 * 06 * 07 * 08
* 09 * 10 * 11 * 12
* 13 * 14 * 15 * 16
where * n is the vertex (x, y) with coordinates appropriately stacked over the bitmap. You define your vert array as:
vert[0] = (*01).x; vert[1] = (*01).y; vert[2] = (*02).x; vert[3] = (*02).y; ...
If you have to distribute these points evenly across the bitmap, then drawBitmapMesh will theoretically give the same result as the drawBitmap function. However, if you offset these vertices from their βnaturalβ position, then drawBitmapMesh will begin to stretch the bitmap according to the specification.
You can set the remaining arguments of the function to 0, null, 0, null, respectively, as it was in your example.