Hi at all,
I have one issues with multitouch features offers by the MotionEvent
class, this is my code:
@Override
public boolean onTouchEvent(MotionEvent event) {
[....]
if(event.getPointerCount() == 1){
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
finger_one_ID = event.getAction() &
MotionEvent.ACTION_POINTER_ID_MASK;
finger_one_X = (int) event.getX(finger_one_ID);
finger_one_Y = (int) event.getY(finger_one_ID);
renderer.stopTimer();
break;
case MotionEvent.ACTION_UP:
finger_one_ID = NONE;
renderer.setFrictionY(OpenGLRenderer.DEFAULT_FRICTION_Y);
renderer.setFrictionX(OpenGLRenderer.DEFAULT_FRICTION_X);
renderer.startTimer();
break;
case MotionEvent.ACTION_MOVE:
deltaX = finger_one_X - (int)
event.getX(finger_one_ID);
deltaY = finger_one_Y - (int)
event.getY(finger_one_ID);
deltaX = Math.abs(deltaX);
deltaY = Math.abs(deltaY);
distance = (float) ((Math.sqrt(Math.pow(deltaX,2) +
Math.pow(deltaY, 2))));
renderer.setFrictionY(OpenGLRenderer.NULL_FRICTION);
renderer.setFrictionX(OpenGLRenderer.NULL_FRICTION);
if(deltaX > 5.0f && deltaX < 80)
renderer.setYacc( (deltaX / 50));
else if(deltaY > 5.0f && deltaY < 80)
renderer.setXacc( (deltaY / 50));
break;
default:
break;
}
Log.d(TAG, "Single finger_one_Y:"+finger_one_X);
Log.d(TAG, "Single finger_one_Y:"+finger_one_Y);
}
else if(event.getPointerCount() == 2){
Log.d(TAG,"Doppio Tocco");
switch (event.getAction()) {
case MotionEvent.ACTION_POINTER_DOWN:
finger_two_ID = MotionEvent.ACTION_POINTER_DOWN
&
MotionEvent.ACTION_POINTER_ID_MASK;
finger_two_X = (int) event.getX(finger_two_ID);
finger_two_Y = (int) event.getY(finger_two_ID);
multitouch_distance = (float)
Math.sqrt(Math.pow(finger_one_X -
finger_two_X, 2) + Math.pow(finger_one_Y - finger_two_Y, 2));
break;
case MotionEvent.ACTION_MOVE:
finger_one_X = (int) event.getX(finger_one_ID);
finger_one_Y = (int) event.getY(finger_one_ID);
finger_two_X = (int) event.getX(finger_two_ID);
finger_two_Y = (int) event.getY(finger_two_ID);
multitouch_distance_updated = (float)
Math.sqrt(Math.pow(finger_one_X - finger_two_X, 2) +
Math.pow(finger_one_Y - finger_two_Y, 2));
Log.d(TAG,"multitouch_distance_updated:"+String.valueOf(multitouch_distance_updated));
default:
break;
}
Log.d(TAG, "Double finger_one_Y:"+finger_one_X);
Log.d(TAG, "Doppio finger_one_Y:"+finger_one_Y);
Log.d(TAG, "Doppio finger_two_Y:"+finger_two_X);
Log.d(TAG, "Doppio finger_two_Y:"+finger_two_Y);
}
}
The problem is that in multitouch branch of my code the X,Y of first
and second finger are the same, therefore the multitouch distance is
even zero!!
I am tried to develop an two fingers zoom...
Any suggestion will be appreciated.
pedr0
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en