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

다른 함수에서 getWidth 와 getHeight 를 사용하기 위해...

0 추천

@Override
 public void onDraw(Canvas canvas) {
   float ScaleX = canvas.getWidth()/ 320f;
  float ScaleY = canvas.getHeight() / 480f;
  canvas.scale( ScaleX, ScaleY );
  canvas.drawBitmap(m_BackGroundImage, 0,0,null);

}

@Override
 public boolean onTouchEvent(MotionEvent event) {
  float Scale_X = 320f / canvas.getWidth();
  float Scale_Y = 480f / canvas.getHeight();
  int px = (int)event.getX();
  int py = (int)event.getY();
  }

현재 문제가 되고 있는 부분은 위에 빨간색 부분입니다.

onDraw 함수에서 지역변수 canvas를 선언했는데 다른 함수에서 사용하려고 보니 문제가 생기네요...ㅠ

어떻게 하면 쉽게 사용할 수 있을까요.??? 다른 class의 함수같은 경우는 새로운 객체를 생성해서 이용했엇는데 말이죠..

도움 부탁합니다.
 

laneige (420 포인트) 님이 2013년 3월 27일 질문

1개의 답변

+1 추천
 
채택된 답변

 

canvas가 draw의 캔버스와 같은 곳을 가리킨다고 가정하고 설명하면 이런식으로 할 수 있겠네요.

 

멤버변수를 두고 

int wi, he;

public void onDraw(Canvas canvas) {

   wi = canvas.getWidth();

  he = canvas.getHeight();

   ....

}

public boolean onTouchEvent(MotionEvent event) {
  float Scale_X = 320f / wi;

  float Scale_Y = 480f / he;

 ....

}

dev_아마 (9,750 포인트) 님이 2013년 3월 27일 답변
laneige님이 2013년 3월 27일 채택됨
근데 위에처럼 설정해도 wi , he 에 canvas.getWidth() 와 canvas.getHeigh() 를 갖고 올 수 잇는건가요.???
음... 순차적 방식이 아니라..순간....혼돈이....ㅋㅋ c언어처럼 생각하면 안되겟죠.? 집에가서 확이해보겠습니다.
...