2013-02-27 5 views
0

전 캔버스에 그려야하는 Path 객체의 텍스처로 작동하는 전체 화면에 걸친 비트 맵을 가지고 있습니다. 그런 다음이 질감 된 경로를 맨 위에 그려야하는 배경 이미지가 있습니다.Android - API 드로잉 루틴에 비트 맵 텍스처 적용

PorterDuff 모드를 사용해 보았지만 아무 것도 올바르게 작동하지 않았습니다. PorterDuff 모드가 작동하는 방식을 정확히 파악하는 데 어려움을 겪고있었습니다. 그 중 아무 것도 동작하지 않는 것 같습니다. I always thought they were supposed to function.

나는이 테스트 코드 경로를 텍스처하는 방법을 알아 냈어요 :

Paint paint = new Paint(); 
    //draw the texture 
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.texture),0,0,paint); 
    //construct the Path with an inverse even-odd fill 
Path p = new Path(); 
p.setFillType(Path.FillType.INVERSE_EVEN_ODD); 
p.addCircle(this.getHeight()/2, this.getWidth()/2, 200, Path.Direction.CCW); 
    //use CLEAR to remove inverted fill, thus showing only the originally filled section 
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR)); 
    //draw path 
canvas.drawPath(p, paint); 

하지만 다음 배경 이미지 위에 그것을 배치하는 방법을 알아낼 수 없습니다. PorterDuff 모드를 잘못 사용하고 있습니까?

답변

0

어쩌면 내 질문은 솔루션에 당신을 이끌 수 :

paintdrawPath 호출에 사용 :
페인트 스타일은 무엇입니까?
페인트 스트로크 너비 란 무엇입니까?
페인트 획/채우기 색이란 무엇입니까?

스토크/채우기 색상 대신 질감을 사용하는 경우 페인트의 setShader (BitmapShader 사용)을 어디에서 호출해야합니까?

+0

스타일이 채우기 만하면 그만큼 중요한 부분입니다. 채우기 색상이나 획을 보지 않아야하기 때문입니다. BitmapShader를 사용 하겠지만 원하는 방식으로 텍스처의 좌표를 수정하는 방법을 모르겠습니다. 내가 모르는 방법이 있니? – Taw