2012-02-23 14 views
3

私はfacedetectionアプリを開発しています。このアプリでは、顔の目と口の近くに円を描き、ユーザは、検出された顔の彼の位置に応じて、設定位置の円をクリックすることができます。したがって、すべてのサークルが顔にうまく描かれていますが、特定のサークルをクリックしてズームアウトオプションで顔全体に移動することはできません。同じことについて適切な解決策を提案してください。アンドロイドのキャンバスに描かれた円をクリックする方法は?

ありがとうございます。

+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; 
     } 
関連する問題