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

클래스를 분리하고 싶습니다. onDraw도 한 번만 호출하고 싶구요.

0 추천

화면 오른편에
ToObject라는 객체 정보로 그리는 그림이 있고,  화면 왼편에는 FromObject라는 객체 정보로 그리는 그림이 있습니다.

최종적으로 제가 원하는 것은, FromObject의 그림이 터치를 따라 ToObject위에 올라오면 ToObject 옆에 drawText로 FromObject의 그림이 몇 개가 올라왔다고 나오게 하는 겁니다..

public class TouchMoveMain extends Activity               //하나의 클래스입니다.
{
   protected void onCreate(Bundle savedInstanceState) //onCreate구요
     {                                                                       //setConentView합니다.
     }

      public class TouchMoveClass extends View  //TouchMoveMain 클래스 안에 extends View 한 내부 클래스
         {                                                             //터치 드래그시 필요한 변수 및 arraylist, bitmap등을 선언
  
           public TouchMoveClass(Context context)    //내부 클래스 생성자구요
              {            //FromObject, ToObject 두 배열에다가 사진과 사진이 그려질 좌표x,y, RectF 정보 등
              }
     
           public void onDraw(Canvas canvas)          //onDraw입니다.
              {         위 생성자에서 생성한 정보를 가지고 그림을 그립니다. 
                 FromObject의 rect는 터치를 따라가야 나중에 겹칠 때를 판단할 수 있기 때문에 여기서 다시 설정합니다.
 

           public boolean onTouchEvent(MotionEvent event)   //터치 이벤트 메서드입니다.

              { FromObject 객체만 움직이므로 터치된 event 좌표 x,y를 각각 객체의 새로운 좌표로 넣습니다.
                fromobject.get(i).x += x - fromobject.get(i).preX; 이런 식입니다.
              }

포기하지말고 (180 포인트) 님이 2014년 2월 25일 질문
class FromObject      
               {
                    public FromObject(float xx, float yy, float prex, float prey, Bitmap ob, RectF r )   // 이런 식입니다.
                }              //내부 클래스 안에 또다른 내부 클래스가 있습니다. 이게 FromObject객체 정보를 갖습니다.
    
        class ToObject        
               {
               }             //마찬가지입니다. 단 ToObject에 int num을 만들어두었습니다.
                              FromObject가 ToObject위로 넘어오는 갯수를

                             ToObject의 num에다가 += 1 하거나 -= 1 하고 싶거든요..ㅠㅠ

   }
}

참 쉬운 것 같은데 너무 헷갈리고 어렵네요.




onDraw 안에다가

if ( fromobject.get( 0 ).rect.intersect(toobject.get( 0 ).rect) )
{ toobject.get( 0 ).num += 1; }
else if (toobject.get(0).num != 0)
{ toobject.get( 0 ).num -= 1; } 라고 하고 싶은데 계속 숫자가 올라갑니다..


딱 한 번만 두 이미지가 겹치는 걸 조사하게끔 해야 하는데,

이런 경우 어떻게 해결해야 할까요??????

1개의 답변

0 추천
으아.. 컨텐츠 창이 넓었으면 참 좋았을텐데 보기 힘드네요 @_@..

그런데 클래스를 분리하고 싶다고 하셨는데 어떻게 분리하고 싶으시단거에요 '-'?

OnDraw를 한번만 호출하고 싶다는 힘드실거같구요

젤 마지막부분처럼 OnDraw안에 이미지 겹침을 판별하고 한번만 적용하여 숫자를 증가시킬 목적이라면 플래그를 두면 간단히 해결될 것 같네요
초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 25일 답변
...