From b9d02e5b34bdfbd7311f0d11fce86dcb71987708 Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Mon, 19 Dec 2011 01:48:56 -0600 Subject: [PATCH] Scale fling animation time with display density --- src/org/kreed/vanilla/CoverView.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/kreed/vanilla/CoverView.java b/src/org/kreed/vanilla/CoverView.java index 5fbb1dd9..0da4f837 100644 --- a/src/org/kreed/vanilla/CoverView.java +++ b/src/org/kreed/vanilla/CoverView.java @@ -30,6 +30,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.AttributeSet; +import android.util.DisplayMetrics; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; @@ -46,6 +47,10 @@ public final class CoverView extends View implements Handler.Callback { * flings. */ private static int sSnapVelocity = -1; + /** + * Display metrics, used for scaling. + */ + private static DisplayMetrics sDisplayMetrics; /** * The Handler with which to do background work. Will be null until * setupHandler is called. @@ -152,8 +157,10 @@ public final class CoverView extends View implements Handler.Callback { mScroller = new Scroller(context); - if (sSnapVelocity == -1) + if (sSnapVelocity == -1) { sSnapVelocity = ViewConfiguration.get(context).getScaledMinimumFlingVelocity(); + sDisplayMetrics = context.getResources().getDisplayMetrics(); + } } /** @@ -306,7 +313,7 @@ public final class CoverView extends View implements Handler.Callback { int newX = whichCover * width; int delta = newX - scrollX; - mScroller.startScroll(scrollX, 0, delta, 0, Math.abs(delta) * 2); + mScroller.startScroll(scrollX, 0, delta, 0, (int)(Math.abs(delta) * 2 / sDisplayMetrics.density)); if (whichCover != 1) mTentativeCover = whichCover;