![](/img/trans.png)
[英]How to detect whether screen is touched in a background service in Android Studio?
[英]Android - how to check whether the screen is being touched?
我目前正在使用onTouchEvent(MotionEvent me)
注冊輸入事件,但是,這是一個游戲應用程序,當幀速率減慢時,程序有時無法在GUI按鈕釋放后注冊input.UP事件,這會導致我的角色繼續自己動起來......
是否有像API中的布爾方法檢查在任何給定時間屏幕上是否有手指?
謝謝
可能值得查看onUserInteraction()的文檔。
這樣的事情可以讓你知道用戶最近與屏幕的互動情況:
@Override
public void onUserInteraction(){
MyTimerClass.getInstance().resetTimer();
}
您可以獲得觸摸事件並查看Action down,Move或Action Up以及其他操作,但暫時讓我們停在這里。 我有一個簡單的例子,我認為你或其他任何人都會發現它很有用。
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;
}
}
干杯,
有一個OnTouchListener
對任何View
都有一個onTouch()
方法。
http://developer.android.com/reference/android/view/View.OnTouchListener.html
確保我總是從OnTouchEvent
返回true
而不是super.OnTouchEvent
似乎解決了這個問題......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.