Welcome to Stratos!
Bitmap bitmap = Bitmap.createBitmap(mascara2.getWidth(), mascara2.getHeight(), Bitmap.Config.ARGB_8888);Canvas c = new Canvas(bitmap); c.drawBitmap(cuadro, 0, 0, null);Paint maskPaint = new Paint();maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));c.drawBitmap(mascara2, 0, 0, maskPaint);canvas.drawBitmap(bitmap, 0, 0, null)
Creo que lo ideal sería que usases Opengl, y que las piezas fueran modelos 2D. Toda la imagen del puzzle sería una textura y bastaría con asociar a cada pieza las coordenadas de la textura, que se corresponderían con su posición en el mosaico. Aunque no tienen porqué ser necesariamente polígonos, pueden ser rectángulos y usar aparte de la textura de la imagen otra textura de máscara alpha para cada tipo de pieza.Y bueno, aparte, con Opengl todo sería mucho más rápido y versátil, permitiendo zoom, rotaciones y desplazamientos suaves, filtros, efectos, etc. Hasta podrían tener cierto volumen y perspectiva inclinada en 3D sin demasiado esfuerzo.