public void Run() { try { if (_scroller.IsFinished) { _scroller = null; return; } if (_scroller.ComputeScrollOffset()) { var newX = _scroller.CurrX; var newY = _scroller.CurrY; var transX = newX - _currX; var transY = newY - _currY; _currX = newX; _currY = newY; _view._matrix.PostTranslate(transX, transY); _view.FixTrans(); _view.ImageMatrix = _view._matrix; _view.CompatPostOnAnimation(this); } } catch (System.Exception ex) { AppSettings.Logger.Warning(ex); } }
public void Run() { try { if (_scroller.IsFinished) { _scroller = null; return; } if (_scroller.ComputeScrollOffset()) { var newX = _scroller.CurrX; var newY = _scroller.CurrY; var transX = newX - _currX; var transY = newY - _currY; _currX = newX; _currY = newY; _view._matrix.PostTranslate(transX, transY); _view.FixTrans(); _view.ImageMatrix = _view._matrix; _view.CompatPostOnAnimation(this); } } catch { //todo nothing } }
public bool OnTouch(View v, MotionEvent evt) { _view._touchListener?.OnTouch(v, evt); // User-defined handler, maybe _view._scaleDetector?.OnTouchEvent(evt); _view._gestureDetector?.OnTouchEvent(evt); var currentX = evt.GetX(); var currentY = evt.GetY(); if (_view._state == TouchState.None || _view._state == TouchState.Drag || _view._state == TouchState.Fling) { switch (evt.Action) { case MotionEventActions.Down: _lastX = currentX; _lastY = currentY; _view._fling?.CancelFling(); _view.SetState(TouchState.Drag); break; case MotionEventActions.Move: if (_view._state == TouchState.Drag) { var deltaX = currentX - _lastX; var deltaY = currentY - _lastY; var fixTransX = _view.GetFixDragTrans(deltaX, _view.ViewWidth, _view.GetImageWidth()); var fixTransY = _view.GetFixDragTrans(deltaY, _view.ViewHeight, _view.GetImageHeight()); _view._matrix.PostTranslate(fixTransX, fixTransY); _view.FixTrans(); _lastX = currentX; _lastY = currentY; } break; case MotionEventActions.Up: case MotionEventActions.PointerUp: _view.SetState(TouchState.None); break; } } _view.ImageMatrix = _view._matrix; // // indicate event was handled // return(true); }