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

켄버스 투명 처리 및 이미지 출력

0 추천

커스텀 뷰를 만들어서 도형 그리기 및 이미지 출력을 하려고 합니다.

 

1. 일단 도형그리기에 알파값을 주어서 반투명한 도형을 그리려 시도를 해보았는데..

 
 public void onDraw(Canvas canvas)
 {

  Paint pnt=new Paint();
 
  pnt.setAntiAlias(true);
  pnt.setAlpha(0xAF);
  
  //스위치 그리기
  pnt.setColor(Color.BLACK);
  canvas.drawCircle(x,y,80,pnt);
 }

이 코드로 드려지는 원이 완전 불투명하게 나오네요.. 어떻게 하면 투명한 도형들을 그릴수 있을까요?

 

2. 게임을 만들고 있습니다.

작업은 커스텀뷰 속에 onDraw에서 출력 하는것으로 하려 합니다.

이렇게 리스트로 된 이미지를 구하였는데, 케릭터의 이동방향에 맞는 이미지를 보여주고 싶습니다.

어떻게 하면 저 이미지를 프로그램 상에서 동적으로 원하는 부위만 출력(케릭터 1개)을 할 수 있을까요?

 

윈도우에서는 큰 이미지를 잘라서 비트맵 객체로 만든 다음 배열을 이용해서 관리를 했던것 같던데, 안드로이드에서도 비슷한 방법이 없을까요??

 

도와주세요 ㅠㅠ

 

romio (420 포인트) 님이 2013년 3월 28일 질문

1개의 답변

+1 추천
 
채택된 답변

Color.argb(alpha, red, green, blue);

setcolor부분을 요로코롬 바꾸시면 되구요....

스프라이트 부분은 똑같습니다. 말씀하신것 처럼 이미지를 잘라서 스시면 됩니다.

하지만 이미 로드 되어있는 이미지를 객체화 하실 필요는 없고 이미 로드되어있는 이미지에서 원하는 부분만 잘라서 보여주시면 됩니다.

이미지 한장의 크기가 50 x50 이라하면...

 

Rect src = new Rect(0, 0, 50, 50);
Rect dst = new Rect(0, 0, 50, 50);
c.drawBitmap(bgimg, src, dst, null);
하시면 로드된 비트맵의 0,0에서 50x50크기만큼의 이미지를 캔버스 0,0에서 50x50크기의 렉트에 뿌려주게 됩니다.
(최상단 최좌측의 이미지가 출력 되지요.......)
 
최상단 좌측에서 2번째 이미지를 출력 하신다면 
Rect src = new Rect(50, 0, 100, 50);
Rect dst = new Rect(0, 0, 50, 50);
c.drawBitmap(bgimg, src, dst, null);
(요로코롬 하면 되겠지요....)
 
이정도면 답변이 되셨으리라 봅니다.

 

ThisPlus (46,920 포인트) 님이 2013년 3월 29일 답변
romio님이 2013년 3월 29일 채택됨
감사합니다.

덕분에 문제가 잘 해결 되었네요 ^^;
...