-3
Я хочу реализовать два пальца салфетки жест в моем приложении Android. Я использовал следующий код:Жест «Два пальца»?
void handleTouch(MotionEvent m){
//Number of touches
int pointerCount = m.getPointerCount();
if(pointerCount == 2){
int action = m.getActionMasked();
int actionIndex = m.getActionIndex();
String actionString;
TextView tv = (TextView) findViewById(R.id.testDiffText);
switch (action)
{
case MotionEvent.ACTION_DOWN:
GLOBAL_TOUCH_POSITION_X = (int) m.getX(1);
actionString = "DOWN"+" current "+GLOBAL_TOUCH_CURRENT_POSITION_X+" prev "+GLOBAL_TOUCH_POSITION_X;
tv.setText(actionString);
break;
case MotionEvent.ACTION_UP:
GLOBAL_TOUCH_CURRENT_POSITION_X = 0;
actionString = "UP"+" current "+GLOBAL_TOUCH_CURRENT_POSITION_X+" prev "+GLOBAL_TOUCH_POSITION_X;
tv.setText(actionString);
break;
case MotionEvent.ACTION_MOVE:
GLOBAL_TOUCH_CURRENT_POSITION_X = (int) m.getX(1);
int diff = GLOBAL_TOUCH_POSITION_X-GLOBAL_TOUCH_CURRENT_POSITION_X;
actionString = "Diff "+diff+" current "+GLOBAL_TOUCH_CURRENT_POSITION_X+" prev "+GLOBAL_TOUCH_POSITION_X;
tv.setText(actionString);
break;
case MotionEvent.ACTION_POINTER_DOWN:
GLOBAL_TOUCH_POSITION_X = (int) m.getX(1);
actionString = "DOWN"+" current "+GLOBAL_TOUCH_CURRENT_POSITION_X+" prev "+GLOBAL_TOUCH_POSITION_X;
tv.setText(actionString);
break;
default:
actionString = "";
}
pointerCount = 0;
}
else {
GLOBAL_TOUCH_POSITION_X = 0;
GLOBAL_TOUCH_CURRENT_POSITION_X = 0;
}
}
я получаю то же действие, выполняемое в вверх или вниз проведите пальцем. он выполняет только задачу Action_up. кто-нибудь может помочь мне реализовать как до дна салфетки, так и снизу до салфетки.
Работает ли он на двух пальцах? – Kaifi
MotionEvent.ACTION_DOWN означает один палец. MotionEvent.ACTION_POINTER_DOWN - два пальца. –
Большое спасибо @Inneke De Clippel. :) – Kaifi