Android如何在固定的时间间隔内捕获接触点位置
如何仅在触发“偶数触控”时,在固定时间间隔内捕获触控点位置。也就是说,时间间隔仅在触发触摸事件后触发,时间间隔在触摸事件终止时终止 现在,我已经通过引用android开发者文档编写了捕获接触点的代码。请建议如何修改代码以在规定的时间间隔内捕获触摸位置Android如何在固定的时间间隔内捕获接触点位置,android,input,timer,touch,Android,Input,Timer,Touch,如何仅在触发“偶数触控”时,在固定时间间隔内捕获触控点位置。也就是说,时间间隔仅在触发触摸事件后触发,时间间隔在触摸事件终止时终止 现在,我已经通过引用android开发者文档编写了捕获接触点的代码。请建议如何修改代码以在规定的时间间隔内捕获触摸位置 public boolean onTouchEvent(MotionEvent event) { // get pointer index from the event object int pointerIndex = event.getAct
public boolean onTouchEvent(MotionEvent event) {
// get pointer index from the event object
int pointerIndex = event.getActionIndex();
// get pointer ID
int pointerId = event.getPointerId(pointerIndex);
// get masked (not specific to a pointer) action
int maskedAction = event.getActionMasked();
switch (maskedAction) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
{
// We have a new pointer. Lets add it to the list of pointers
PointF f = new PointF();
f.x = event.getX(pointerIndex);
f.y = event.getY(pointerIndex);
// Do something
break;
}
case MotionEvent.ACTION_MOVE:
{ // a pointer was moved
for (int size = event.getPointerCount(), i = 0; i < size; i++) {
PointF f = new PointF();
f.x = event.getX(pointerIndex);
f.y = event.getY(pointerIndex);
// Do something
}
break;
}
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_CANCEL:{
// trigger to stop the time interval
}
}
return true;
}
public boolean onTouchEvent(运动事件){
//从事件对象获取指针索引
int pointerIndex=event.getActionIndex();
//获取指针ID
int pointerId=event.getPointerId(pointerIndex);
//获取掩码(不特定于指针)操作
int maskedAction=event.getActionMasked();
开关(掩蔽){
case MotionEvent.ACTION\u DOWN:
case MotionEvent.ACTION\u指针\u向下:
{
//我们有一个新指针。让我们把它添加到指针列表中
PointF=新的PointF();
f、 x=event.getX(pointerIndex);
f、 y=event.getY(pointerIndex);
//做点什么
打破
}
case MotionEvent.ACTION\u移动:
{//移动了一个指针
对于(int size=event.getPointerCount(),i=0;i
我猜您希望在操作指针向下触发时检查当前时间(系统或类似于Joda time的时间),并将其存储为按下的时间值。在动作_MOVE时,如果当前时间按下时间==时间间隔,则记下该点。此时,将按下的时间变量重新初始化为当前时间并重复。执行计时器任务并在计时器任务遇到特定时间时设置标志,如
timer = new Timer();
if (timer != null) {
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
grabThePosition=true;
}
}, 0, samplingInterval);
}
在ontochevent
中,检查标志并获取x、y位置,然后重置标志