Сделать определенную область растрового изображения прозрачной на ощупь

Моя идея состоит в том, чтобы наложить 2 изображения друг на друга, и при onTouch верхнее изображение должно быть прозрачным на этом радиусе касания, таким образом обнажая нижнее изображение.

Вот как я накладываю 2 изображения:

        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);

Я просмотрел этот пост и использовал Paint, как показано ниже, чтобы сделать его прозрачным:

        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
}

Проблема в том, что я думаю, что круг сразу делает 2 изображения прозрачными на заданном радиусе, как я могу сделать прозрачным только верхнее растровое изображение?

20
задан Community 23 May 2017 в 12:16
поделиться