我目前使用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