Haga que cierta área del mapa de bits sea transparente al tacto

Mi idea es superponer 2 imágenes una encima de la otra y sobre onTouch, la imagen superior debe hacerse transparente en ese radio tocado, exponiendo así la imagen inferior.

Así es como superpongo las 2 imágenes:

        Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bmp1, new Matrix(), null);
        canvas.drawBitmap(bmp2, new Matrix(), null);

He buscado enesta publicació y tenga una pintura como la siguiente para hacerla transparente:

        mPaint = new Paint();
        mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
        mPaint.setColor(Color.TRANSPARENT);
        mPaint.setAntiAlias(true); 

public void onDraw(Canvas canvas) {
            canvas.drawCircle(40, 40, 30, mPaint); //hardcode to test
}

El problema es que creo que el círculo inmediatamente hace que las 2 imágenes sean transparentes en el radio definido, ¿cómo puedo hacer que solo el mapa de bits superior sea transparente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta