2012-01-19 21 views
6

私は現在入力イベントを登録するためにを使用していますが、これはゲームアプリケーションです。フレームレートが低下すると、GUIボタンが離された後にプログラムがinput.UPイベントを登録できないことがあります。それ自身の上に移動し続ける...Android - 画面がタッチされているかどうかを確認する方法

いつでも画面に指があるかどうかをチェックするブール値のメソッドがAPIにありますか?

はどのViewのための単一の方法onTouch()を持っているOnTouchListenerがあります

答えて

5

onUserInteraction()のドキュメントをチェックアウトする価値があるかもしれません。このような

何かは、ユーザーが画面と相互作用したか、最近知ることができるようになる:super.OnTouchEventとは対照的に、私はいつもOnTouchEventからtrueを返すことを確認

@Override 
public void onUserInteraction(){ 
    MyTimerClass.getInstance().resetTimer(); 
} 
+0

? – jonney

0

は、問題を解決するため持っているようです...

2

オンタッチイベントを取得して、アクションがダウンしているか、移動しているか、アクションアップしているかどうかを確認できます。私は、あなたや他の誰かがそれが役に立つと思う簡単な例があります。 uはタッチに持っていただけでなく、あなたのすべてのアプリに通知されるようにしたい場合はどのような

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    private boolean isTouch = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     int X = (int) event.getX(); 
     int Y = (int) event.getY(); 

     int eventaction = event.getAction(); 
     switch (eventaction) { 

     case MotionEvent.ACTION_DOWN: 
      Toast.makeText(this, "ACTION_DOWN AT COORDS "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show();   
      isTouch = true; 
      break; 

     case MotionEvent.ACTION_MOVE: 
      Toast.makeText(this, "MOVE "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show(); 
      break; 

     case MotionEvent.ACTION_UP: 
      Toast.makeText(this, "ACTION_UP "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show(); 
      break; 
     } 
     return true; 
    } 
} 

乾杯、

関連する問題