我目前正在使用onTouchEvent(MotionEvent me)
注册输入事件,但是,这是一个游戏应用程序,当帧速率减慢时,程序有时无法在GUI按钮释放后注册input.UP事件,这让我的角色继续自己动起来......
在API中是否有像布尔方法那样在任何给定时间检查屏幕上是否有手指?
谢谢
答案 0 :(得分:5)
可能值得查看onUserInteraction()的文档。
这样的事情可以让你知道用户最近与屏幕的互动情况:
@Override
public void onUserInteraction(){
MyTimerClass.getInstance().resetTimer();
}
答案 1 :(得分:2)
你可以获得触摸事件并查看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;
}
}
干杯,
答案 2 :(得分:0)
对于任何OnTouchListener
,onTouch()
都有一个方法View
。
http://developer.android.com/reference/android/view/View.OnTouchListener.html
答案 3 :(得分:0)
确保我始终从true
而不是OnTouchEvent
返回super.OnTouchEvent
似乎已解决问题......