MultiTouchZoomImpl.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.poqop.document.multitouch;
  2. import android.view.MotionEvent;
  3. import com.poqop.document.models.ZoomModel;
  4. public class MultiTouchZoomImpl implements MultiTouchZoom {
  5. private final ZoomModel zoomModel;
  6. private boolean resetLastPointAfterZoom;
  7. private float lastZoomDistance;
  8. public MultiTouchZoomImpl(ZoomModel zoomModel) {
  9. this.zoomModel = zoomModel;
  10. }
  11. public boolean onTouchEvent(MotionEvent ev) {
  12. /* if ((ev.getAction() & MotionEvent.ACTION_POINTER_DOWN) == MotionEvent.ACTION_POINTER_DOWN) {
  13. lastZoomDistance = getZoomDistance(ev);
  14. return true;
  15. }
  16. if ((ev.getAction() & MotionEvent.ACTION_POINTER_UP) == MotionEvent.ACTION_POINTER_UP) {
  17. lastZoomDistance = 0;
  18. zoomModel.commit();
  19. resetLastPointAfterZoom = true;
  20. return true;
  21. }*/
  22. if (ev.getAction() == MotionEvent.ACTION_MOVE && lastZoomDistance != 0) {
  23. /* float zoomDistance = getZoomDistance(ev);
  24. zoomModel.setZoom(zoomModel.getZoom() * zoomDistance / lastZoomDistance);
  25. lastZoomDistance = zoomDistance;*/
  26. return true;
  27. }
  28. return false;
  29. }
  30. /* private float getZoomDistance(MotionEvent ev) {
  31. return (float) Math.sqrt(Math.pow(ev.getX(0) - ev.getX(1), 2) + Math.pow(ev.getY(0) - ev.getY(1), 2));
  32. }*/
  33. public boolean isResetLastPointAfterZoom() {
  34. return resetLastPointAfterZoom;
  35. }
  36. public void setResetLastPointAfterZoom(boolean resetLastPointAfterZoom) {
  37. this.resetLastPointAfterZoom = resetLastPointAfterZoom;
  38. }
  39. }