具有透明活动的画布上的蒙版位图 [英] Masked bitmap on canvas with transparent activity

查看:136
本文介绍了具有透明活动的画布上的蒙版位图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为活动实现了自定义ShowCase

I implemented custom ShowCase for activity

我正在尝试在帆布面具上绘画: http://i.stack.imgur.com/u23kQ.png

I am trying to draw on canvas mask: http://i.stack.imgur.com/u23kQ.png

遵循以下代码:

mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

    // draw solid background
    mCanvas.drawColor(mMaskColour);

    // Prepare eraser Paint if needed
    if (mEraser == null) {
        mEraser = new Paint();
        mEraser.setColor(0xFFFFFFFF);
        mEraser.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        mEraser.setFlags(Paint.ANTI_ALIAS_FLAG);
    }

    // draw (erase) shape
   // mShape.draw(mCanvas, mEraser, mXPosition, mYPosition, mShapePadding);

    mCanvas.drawBitmap(cBitmap,mXPosition,mYPosition,mEraser);

    // Draw background
    canvas.drawBitmap(mBitmap, 0, 0, null);

但是它看起来像这样:

http://i.stack.imgur.com/MhcOt.png

推荐答案

我解决了

 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
        mCanvas.drawBitmap(cBitmap,mXPosition,mYPosition,paint);
       // mShape.draw(canvas, mEraser, mXPosition, mYPosition, mShapePadding);
        // Draw the bitmap on our views  canvas.
        canvas.drawBitmap(mBitmap, 0, 0, null);

这篇关于具有透明活动的画布上的蒙版位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆