diff options
| author | 2010-01-20 23:06:43 -0800 | |
|---|---|---|
| committer | 2010-01-20 23:06:43 -0800 | |
| commit | d5ada83c719d366d3063572ca6ce5ab8918fd39b (patch) | |
| tree | 0b60b778c9edf86452b8bd88ab42db88310c6649 | |
| parent | e834722f547d13eaa453464502456892c6225e42 (diff) | |
ScaleGestureDetector needs to query the displaymetrics
for the width/height on each touch down as orientation
can change.
This should fix the problem where we can't pinch on the
top right corner when device is in landscape mode.
| -rw-r--r-- | core/java/android/view/ScaleGestureDetector.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java index 2f1c2b2dacf1..f991df7b637f 100644 --- a/core/java/android/view/ScaleGestureDetector.java +++ b/core/java/android/view/ScaleGestureDetector.java @@ -147,12 +147,9 @@ public class ScaleGestureDetector { public ScaleGestureDetector(Context context, OnScaleGestureListener listener) { ViewConfiguration config = ViewConfiguration.get(context); - DisplayMetrics metrics = context.getResources().getDisplayMetrics(); mContext = context; mListener = listener; mEdgeSlop = config.getScaledEdgeSlop(); - mRightSlopEdge = metrics.widthPixels - mEdgeSlop; - mBottomSlopEdge = metrics.heightPixels - mEdgeSlop; } public boolean onTouchEvent(MotionEvent event) { @@ -165,6 +162,11 @@ public class ScaleGestureDetector { event.getPointerCount() >= 2) { // We have a new multi-finger gesture + // as orientation can change, query the metrics in touch down + DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); + mRightSlopEdge = metrics.widthPixels - mEdgeSlop; + mBottomSlopEdge = metrics.heightPixels - mEdgeSlop; + // Be paranoid in case we missed an event reset(); |