我目前使用onTouchEvent(MotionEvent me)
來註冊輸入事件,但是,這是一個遊戲應用程序,當幀速率變慢時,程序有時無法在GUI按鈕釋放後註冊input.UP事件,這會導致我的角色繼續自己...Android - 如何檢查屏幕是否被觸摸?
是否有像在API中的布爾方法,檢查在任何給定的時間是否有一個手指在屏幕上?
謝謝
我目前使用onTouchEvent(MotionEvent me)
來註冊輸入事件,但是,這是一個遊戲應用程序,當幀速率變慢時,程序有時無法在GUI按鈕釋放後註冊input.UP事件,這會導致我的角色繼續自己...Android - 如何檢查屏幕是否被觸摸?
是否有像在API中的布爾方法,檢查在任何給定的時間是否有一個手指在屏幕上?
謝謝
有一個OnTouchListener
有任何View
一個方法onTouch()
。
http://developer.android.com/reference/android/view/View.OnTouchListener.html
可能是值得一試的文檔onUserInteraction()。
像這樣的事情會讓你知道用戶是如何最近與屏幕互動:
@Override
public void onUserInteraction(){
MyTimerClass.getInstance().resetTimer();
}
確保我總是從OnTouchEvent
返回true
而不是super.OnTouchEvent
似乎已經解決的問題...
您可以獲得聯繫事件,並查看是否執行了動作,動作或動作以及其他動作,但暫時讓我們停下來。我有一個簡單的例子,我認爲你或其他人會發現它有用。
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;
}
}
乾杯,
如果u想要的任何應用程序被通知不只是你說對觸摸什麼? – jonney