마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

image crop 영역 응용 전 기본 지식 질문있습니다.

+1 추천
 mPaint.setAntiAlias(true);
        mPaint.setFilterBitmap(true);
        mPaint.setColor(Color.BLACK);
        mPaint.setAlpha(50);
        
        // Draw actual bitmap
//        canvas.drawBitmap(mBitmap, mDisplayMatrix, mPaint);
//        canvas.drawBitmap(mBitmap, 200,200, mPaint);
        mBitmap = CropBitmapTransparency(mBitmap);
        canvas.drawBitmap(mBitmap, 0,0, null);

        canvas.drawRect(0, 0, mBitmap.getWidth(), mBitmap.getHeight(), mPaint);
        
        Paint clearPaint = new Paint();
        clearPaint.setAlpha(100);
        clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        clearPaint.setAntiAlias(true);
        canvas.drawRect(0, 0, mBitmap.getWidth(), mBitmap.getHeight(), clearPaint);

 

비트맵 이미지를 뿌려주고 , 검정색 반투명한 Paint로 그려주고 마지막에 clearPaint로 앞서 그려진 검정색 반투명 Paint가 지워지고 원래 비트맵 색깔이 나와야하는데 방법이 잘못된 것같습니다. 갈피를 못잡고 있어 이리 질문 드립니다.

hlopwos (190 포인트) 님이 2015년 8월 19일 질문

1개의 답변

+1 추천
그렇게 하면 않돼요. 비트맵 뿌려주시고요.

반투명을 칠하시면 않돼요.

반투명 한 이미지를 만들어주시고 그 반투명한 이미지에 클리어 할영역을 설정해서 투명하게 하시고 이렇게 만들어진걸

덮어씨우세요
컴러기 (22,230 포인트) 님이 2015년 8월 19일 답변
아 저도 반투명한 부분을 뿌려놓고 , 클리어 하니 검정색으로 변해버려서 안되고 있는데 방법이 없을까요 ?

mPaint.setColor(Color.BLACK);
        mPaint.setAlpha(100);
canvas.drawBitmap(mBitmap, 0,0, mPaint);

Paint clearPaint = new Paint();
   clearPaint.setAlpha(100);
 clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
   clearPaint.setAntiAlias(true);
  canvas.drawRect(0, 0, mBitmap.getWidth(), mBitmap.getHeight(), clearPaint);
중간에 비트맵을 하나 더 만들어서 처리하세요.
먼저번 질문에 함수 하나 만들어놨는데요. 그함수이름이랑 이거랑 중복되내요 ㅎㅎ
아무튼 그거가 덮어 씨울 이미지 만드는 함수걸랑요.
그걸 이용해서 이미지 만들어서 그걸 저 이미지위에다 다시 그려주시면 될것도 같내요
...