2013-02-22 1 views
0

저는 Android (Java와 관련하여)에 익숙하지 않으며 간단한 게임을 만들고 있습니다. 나는 붙어있다.Android 드로잉 투명도

내 문제는 이것이다 :

내가 시작시 전체 화면을 차지 2 개 PNG 이미지 (배경 및 전경)이있다. 이제 전경의 "그려진 부분"의 너비를 ON_DRAG의 x 좌표로 설정할 수 있기를 원합니다. 내 제어 방법은 정상적으로 작동합니다. 다음과 같이 사용됩니다.

g.drawRect (0, 0, scene.getLine(), g.getHeight(), Color.GREEN);

여기서 scene.getLine()은 터치의 x 값을 반환합니다. 그래서이 시점에서 나는 이미지 위에 녹색 직사각형을 그릴 수 있습니다. 하지만 실제로 원하는 것은 직사각형 치수가 내 최상위 레이어 png에서 "구멍을내어 펀치"하는 것입니다 (배경이 아래에 표시됨). 나는 전경의 크기를 조절하고 싶지 않습니다.

clipRect를 시도했지만이 두 가지 위에 그려야하는 다른 이미지가 있기 때문에 작동하지 않으며 clipRect가이를 방지합니다. "PorterDuffXfermode"코드를 많이 보았지만이를 상황에 적용하는 방법을 이해할 수 없으며 제대로 작동하지 않습니다. 즉 PorterDuff "SRC"모드가 설정된 페인트를 만들 수 있지만 "소스"및 "대상"이미지를 정의하는 방법을 알지 못해 페인트가 그 마법을 작동시킬 수 없습니다. 이것에 대한 마지막 고려 사항은 PorterDuff이 작동하더라도,이 장치를 60fps로 작동 시키려면 실용적 일 수 있다는 것을 확신하지 못합니다.

제안 사항?

감사합니다.

답변

1

클립 전에 canvas.save()으로 전화를 걸고 화면에서 canvas.restore()으로 전화를 걸어 이전에 보던 상태로 캔버스를 되돌릴 수 있습니다. 그런 다음 추가 이미지를 그릴 수 있습니다.

+0

정말 고마워요, 완전히 작동했습니다! – jag