0

I am developing an application on 3D image masking .For this i have different transparent images and placing them in an array .I have searched a lot and finally i haveused PorterDuffXfermode to achieve masking .But i can able to get only one masked image at once .Please look at this below code

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

my desired output like as below image.Thanks in advance

enter image description here

yuva ツ
  • 3,707
  • 9
  • 50
  • 78
jay
  • 61
  • 1
  • 1
  • 3

0 Answers0