0

私は3D画像マスキングに関するアプリケーションを開発しています。このために、さまざまな透明画像があり、それらを配列に配置しています。多くの検索を行い、最終的にPorterDuffXfermodeを使用してマスキングを実現しました。しかし、一度にマスクされた画像を1つしか取得できません.以下のコードを見てください

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