i'm wandering possible invoke service on pinch zoom in/out in android, please don't mind if silly doubt you, please me in understanding.
startservice(myservice); how invoke service on pinch zoom in on top of activity.
to detect pinch zoom i'm using following code in mainactivity
private static final int invalid_pointer_id = -1; private int mactivepointerid = invalid_pointer_id; @override public boolean ontouchevent(motionevent ev) { final int action = ev.getaction(); switch (action & motionevent.action_mask) { case motionevent.action_down: { final float x = ev.getx(); final float y = ev.gety(); mlasttouchx = x; mlasttouchy = y; // save id of pointer mactivepointerid = ev.getpointerid(0); break; } case motionevent.action_move: { // find index of active pointer , fetch position final int pointerindex = ev.findpointerindex(mactivepointerid); final float x = ev.getx(pointerindex); final float y = ev.gety(pointerindex); final float dx = x - mlasttouchx; final float dy = y - mlasttouchy; mposx += dx; mposy += dy; mlasttouchx = x; mlasttouchy = y; invalidate(); break; } case motionevent.action_up: { mactivepointerid = invalid_pointer_id; break; } case motionevent.action_cancel: { mactivepointerid = invalid_pointer_id; break; } case motionevent.action_pointer_up: { // extract index of pointer left touch sensor final int pointerindex = (action & motionevent.action_pointer_index_mask) >> motionevent.action_pointer_index_shift; final int pointerid = ev.getpointerid(pointerindex); if (pointerid == mactivepointerid) { // our active pointer going up. choose new // active pointer , adjust accordingly. final int newpointerindex = pointerindex == 0 ? 1 : 0; mlasttouchx = ev.getx(newpointerindex); mlasttouchy = ev.gety(newpointerindex); mactivepointerid = ev.getpointerid(newpointerindex); } break; } } return true; } knowledge sharing highly appreciated. in advance.
Comments
Post a Comment