触摸时使某个位图区域透明

我的想法是将两个图像重叠在一起,并且在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个图像在定义的半径上透明,我怎样才能使顶部位图透明?


GCT1015
浏览 376回答 2
2回答

慕雪6442864

嘿,你的帖子里面有答案!基本上尝试类似的东西:public void onDraw(Canvas canvas) {        if (myPaintFlag) {        canvas.drawBitmap(bmp1, new Matrix(), null);        canvas.drawBitmap(bmp2, new Matrix(), mPaint);    }    else {        canvas.drawBitmap(bmp1, new Matrix(), mPaint);        canvas.drawBitmap(bmp2, new Matrix(), null);    }   }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android