- meshWidth 控制在横向上把该源位图划成成多少格
- meshHeight 控制在纵向上把该源位图划成成多少格
- verts 长度为(meshWidth + 1) * (meshHeight + 1) * 2的数组,它记录了扭曲后的位图各顶点位置
- vertOffset 控制verts数组中从第几个数组元素开始才对bitmap进行扭曲
3. drawBitmapMesh简单示例
- 根据参数的含义,我们先初始化这些参数:
//将图像分成多少格
private int carBodyWidthPart = 4;
private int carBodyHeightPart = 4;
//交点坐标的个数
private int carBodyPartCount = (carBodyWidthPart + 1) * (carBodyHeightPart + 1);
//用于保存COUNT的坐标
//x0, y0, x1, y1…
private float[] carBodyNewsPos = new float[carBodyPartCount * 2];
private float[] carBodyOrigPos = new float[carBodyPartCount * 2];
/**
-
得到网格点集合
-
@param bitmap bitmap
-
@param heightPart 纵向分割的份数
-
@param widthPart 横向分割的份数
-
@param newPos 新点集合
-
@param origPos 原始点集合
*/
protected void getBitmapMeshPoints(Bitmap bitmap, int heightPart, int widthPart, float[] newPos, float[] origPos) {
//初始化网格点
int index = 0;
float bmWidth = bitmap.getWidth();
float bmHeight = bitmap.getHeight();
for (int i = 0; i < heightPart + 1; i++) {
float fy = bmHeight