2012-03-10 3 views
1

私は画面の上部から下部に行くボールのビットマップを持っているsurfaceView上で簡単なアプリケーションを作っています。一番下に達すると再び上に現れ、再び下に落ち始める。Androidの開発、おおよその座標を取得するには?

次は落ちてボールをクリックしたときに画面の上部に戻るようにしました。しかし、私はそれをクリックすることができないので(これは唯一のピクセルだと思うので)、私はこの問題を抱えています。 onTouchListenerをクリックの座標getX()getY()に設定し、クリックのx座標とy座標がボールの現在の位置のxとyと等しい場合、ボールは画面の先頭に戻ります。

これはうまくいきません。私がボールをクリックできるようにするためには、ボールが当時の正確な中心ピクセルをクリックしなければならないからです。だから私の質問はどうすればいいですか?クリックがに近い、または約がボールの現在の位置に等しい場合は、先頭に戻ります。私はこれに悩んでいますので、私が愚かな質問をする場合は謝ります。私は学ぶために最善を尽くしています。助けてくれてありがとう。それは有り難いです。

答えて

3

これはうまくいくはずです。 onTouchメソッドをオーバーライドするだけです。

@Override 
    public boolean onTouch(View v, MotionEvent me) 
    { 
     try 
     { 
      Thread.sleep(50); 
     } catch (InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
     switch (me.getAction()) 
     { 
     case MotionEvent.ACTION_DOWN: 
      x = me.getX(); 
      y = me.getY(); 
      break; 
     case MotionEvent.ACTION_UP: 
      x = me.getX(); 
      y = me.getY(); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      x = me.getX(); 
      y = me.getY(); 
      break; 
     case MotionEvent.ACTION_OUTSIDE: 
      x = 100; 
      y = 200; 
      break; 
     } 
     return true; 
    } 
関連する問題