From fb25006b5acd7c7511d1e1c3679b740dc8e1d798 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 28 Jun 2013 03:58:11 +0200 Subject: [PATCH] fix animateZoom --- vtm/src/org/oscim/view/MapViewPosition.java | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/vtm/src/org/oscim/view/MapViewPosition.java b/vtm/src/org/oscim/view/MapViewPosition.java index abbd5fd6..7c0042e4 100644 --- a/vtm/src/org/oscim/view/MapViewPosition.java +++ b/vtm/src/org/oscim/view/MapViewPosition.java @@ -700,7 +700,7 @@ public class MapViewPosition { public synchronized void animateFling(int velocityX, int velocityY, int minX, int maxX, int minY, int maxY) { - if (velocityX * velocityX + velocityY * velocityY < 4096) + if (velocityX * velocityX + velocityY * velocityY < 2048) return; mScrollX = 0; @@ -722,9 +722,21 @@ public class MapViewPosition { } public synchronized void animateZoom(float scale) { - mStartScale = mAbsScale; - mEndScale = mAbsScale * scale - mAbsScale; - animStart(300); + animateZoom(scale, 300); + } + + public synchronized void animateZoom(float scale, int duration) { + if (mAnimEnd > 0 && mAnimScale){ + mEndScale = (mEndScale + mStartScale) * scale - (mAbsScale); + mStartScale = mAbsScale; + } else{ + mStartScale = mAbsScale; + mEndScale = mAbsScale * scale - mAbsScale; + } + mAnimFling = false; + mAnimMove = false; + mAnimScale = true; + animStart(duration); } /**