2012-02-23 2 views
3

facedetection app를 개발 중입니다.이 앱에서 얼굴의 눈과 입 근처에서 원을 그려야하고 사용자가 dedetected 한 얼굴에서 그 사람의 위치를 ​​설정하기 위해 클릭 할 수 있습니다. 따라서 모든 서클이 얼굴에 성공적으로 그려졌지만 특정 서클을 클릭하여 확대/축소 옵션으로 얼굴 전체로 이동할 수는 없습니다. 이와 관련하여 올바른 해결책을 제안 해주십시오.안드로이드에서 캔버스에 그린 원을 클릭하는 방법은 무엇입니까?

미리 감사드립니다.

+0

캔버스에서 원 클릭을 감지하는 해결책을 찾았습니까? –

답변

0
Math.sqrt(Math.pow(clickX - centerX, 2) + Math.pow(clickY - centerY, 2)); 

요점의 중심과 터치 이벤트 사이의 거리를 계산 - 거리가 원의 반지름보다 작은 경우 - 당신이 원 여기

1

에 눌려 것은 내가 사각형에 사용되는 예입니다 . 대신 서클을 사용하도록 코드를 조정할 수 있는지 확인하십시오.

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    super.onTouchEvent(event); 

     int x = (int)event.getX(); 
     int y = (int)event.getY(); 
     xStored = x; yStored=y; 
     if (event.getAction()==MotionEvent.ACTION_UP){ 

     }else if(event.getAction()==MotionEvent.ACTION_DOWN){ 
      System.out.println("Touching down!"); 
       for(Rect rect : rectangles){ 
        if(rect.contains(x,y)){ 
         System.out.println("Touched Rectangle, start activity."+x+","+y); 

          invalidate(); 
       }else{ 

       } 
       } 


      }else if(event.getAction()==MotionEvent.ACTION_MOVE){ 

      } 
      this.postInvalidate(); 
     return true; 
     } 
관련 문제