我正在尝试构建一个使用多点触控的应用程序。我正在使用'getActionMasked()'
获取当前操作,然后检查指针计数是否为2。
代码怎么还没有像我期望的那样工作。
我面临的问题主要有两个。
'MotionEvent.ACTION_UP'
未执行。以下是代码:
imgs.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent m) {
// TODO Auto-generated method stub
//Prevent false touch events
long now = System.currentTimeMillis();
if (lastTime > -1 && (now - lastTime) < threshold) {
// Return if a touch event was receive less than "threshold" time ago
return true;
}
lastTime = now;
switch(m.getActionMasked()){
case MotionEvent.ACTION_DOWN:
td = System.currentTimeMillis();
int pointerCount = m.getPointerCount();
if (pointerCount == 2){
//Do Work here. [Not Working]
}
return true;
case MotionEvent.ACTION_UP:
//Do Work here. [Not Working]
return true;
}
return arg0.onTouchEvent(m);
}
});
我不确定我做错了什么。期待在这方面得到一些帮助,并对我做错了一些澄清。
答案 0 :(得分:0)
我认为setOnTouchListener只适用于单指,所以你永远不会得到两个手指事件。 您可以使用onTouchEvent(View v,MotionEvent e),
public class yourview extends view(
@Override
public boolean onTouchEvent(MotionEvent m) {
int pointerCount = m.getPointerCount();
switch (m.getAction() & MotionEvent.ACTION_MASK) {
//case
case MotionEvent.ACTION_POINTER_DOWN:
if (pointerCount == 2){
//do what you want here.
}
//case
}
return true;
}