@Override
  public void draw(Canvas canvas) {
    super.draw(canvas);
    if (mPaint == null) mPaint = new Paint();

    if (mShader != null) {
      mShaderBitmap =
          Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
      Canvas tempCanvas = new Canvas(mShaderBitmap);
      Paint paint = new Paint();
      paint.setShader(mShader);
      tempCanvas.drawPaint(paint);
    }
    if (mVerts != null) {
      canvas.drawBitmapMesh(mBitmap, 50, 5, mVerts, 0, null, 0, null);
      if (mShaderBitmap != null)
        canvas.drawBitmapMesh(mShaderBitmap, 50, 5, mVerts, 0, null, 0, null);
    } else canvas.drawBitmap(mBitmap, new Matrix(), mPaint);
  }
 private void drawBitmapMesh(Canvas canvas) {
   if (direction) {
     delta++;
     if (delta > 20) {
       direction = false;
     }
   } else {
     delta--;
     if (delta < -20) {
       direction = true;
     }
   }
   vertixs[8] = 200 + delta;
   vertixs[9] = 200 - delta;
   canvas.drawBitmapMesh(mBitmap, 2, 2, vertixs, 0, null, 0, mPaint);
   invalidate();
 }