0

我正在开发一个关于 3D 图像遮罩的应用程序。为此,我有不同的透明图像并将它们放在一个数组中。我搜索了很多,最后我使用 PorterDuffXfermode 来实现遮罩。但我一次只能得到一个遮罩图像.请看下面的代码

private void makeMask() {
        // TODO Auto-generated method stub      
        ImageView imageView=new ImageView(this);
        Canvas mCanvas;
        for(int i=0;i<maskBitmaps.length;i++){
            //mask image
            Bitmap mask=BitmapFactory.decodeResource(getResources(), maskBitmaps[i]);
            Bitmap original=BitmapFactory.decodeResource(getResources(), R.drawable.nature);
            Bitmap result = Bitmap.createBitmap((int)width,(int)height, Config.ARGB_8888);
            Canvas mCanvas = new Canvas(result);
            Paint maskPaint = new Paint();
            mCanvas.drawBitmap(original, 0, 0, null);
            maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));      
            mCanvas.drawBitmap(mask, 0, 0, maskPaint);
            maskPaint.setXfermode(null);
            imageView.setImageBitmap(result);
            setContentView(imageView);  
    }

我想要的输出如下图所示。在此先感谢

在此处输入图像描述

4

0 回答 0