创建可移动的画布覆盖

时间:2013-09-05 16:21:42

标签: java android android-canvas

我有两个位图,因为我想要融合在一起。 我用画布来实现这一目标。以下代码将创建一个结果图像,其中蒙版被50%混合到背景中。

 Bitmap output = Bitmap.createBitmap(picture.getWidth(),
            picture.getHeight(), Config.ARGB_8888);

    Paint p = new Paint();
    Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    maskPaint.setAlpha(127);

    Canvas c = new Canvas(output);
    c.drawBitmap(picture, 0, 0, p);
    c.drawBitmap(mask, 0, 0, maskPaint);
    return output;

如果能够使用Xfermode删除部分位图,我也一直在体验。我用以下代码完成了这个:(这将创建一个孔,一个正方形)

    int height = BitmapHandler.getMainBitmap().getHeight();
    int width = BitmapHandler.getMainBitmap().getWidth();
    Bitmap bmOverlay = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

    Paint p = new Paint();
    p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));              
    Canvas c = new Canvas(bmOverlay); 
    c.drawBitmap(BitmapHandler.getMainBitmap(), 0, 0, null); 
    c.drawRect(30, 30, 100, 100, p);

    return bmOverlay;

现在,我想知道,如果使用画布,我能够绘制背景和面具,同时能够删除部分面具并让背景“闪耀”通过

谢谢!

0 个答案:

没有答案