diff options
author | Romain Guy <romainguy@android.com> | 2009-05-25 13:51:00 -0700 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2009-05-25 13:51:00 -0700 |
commit | e7c36dda7ada30e02f3aa9d75f282a53402aeae7 (patch) | |
tree | 82b6ab8e66680e3a1d58ed0d9d646546b84f1c7e /core/java/android/gesture | |
parent | ec25df9fbc685be384f8dd764fa224a4d923e9d8 (diff) | |
download | frameworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.zip frameworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.tar.gz frameworks_base-e7c36dda7ada30e02f3aa9d75f282a53402aeae7.tar.bz2 |
Add new orientation attribute to GestureOverlayView. This can be used to prevent the overlay from interfering with vertically/horizontally scrolling views underneath the overlay.
Diffstat (limited to 'core/java/android/gesture')
-rwxr-xr-x | core/java/android/gesture/GestureOverlayView.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java index 4cdbd3e..1a82095 100755 --- a/core/java/android/gesture/GestureOverlayView.java +++ b/core/java/android/gesture/GestureOverlayView.java @@ -53,6 +53,9 @@ public class GestureOverlayView extends FrameLayout { public static final int GESTURE_STROKE_TYPE_SINGLE = 0; public static final int GESTURE_STROKE_TYPE_MULTIPLE = 1; + public static final int ORIENTATION_HORIZONTAL = 0; + public static final int ORIENTATION_VERTICAL = 1; + private static final int FADE_ANIMATION_RATE = 16; private static final boolean GESTURE_RENDERING_ANTIALIAS = true; private static final boolean DITHER_FLAG = true; @@ -76,6 +79,8 @@ public class GestureOverlayView extends FrameLayout { private float mGestureStrokeSquarenessTreshold = 0.275f; private float mGestureStrokeAngleThreshold = 40.0f; + private int mOrientation = ORIENTATION_VERTICAL; + private final Rect mInvalidRect = new Rect(); private final Path mPath = new Path(); @@ -150,6 +155,7 @@ public class GestureOverlayView extends FrameLayout { mInterceptEvents); mFadeEnabled = a.getBoolean(R.styleable.GestureOverlayView_fadeEnabled, mFadeEnabled); + mOrientation = a.getInt(R.styleable.GestureOverlayView_orientation, mOrientation); a.recycle(); @@ -176,6 +182,14 @@ public class GestureOverlayView extends FrameLayout { return mStrokeBuffer; } + public int getOrientation() { + return mOrientation; + } + + public void setOrientation(int orientation) { + mOrientation = orientation; + } + public void setGestureColor(int color) { mCertainGestureColor = color; } @@ -415,7 +429,7 @@ public class GestureOverlayView extends FrameLayout { private boolean processEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: - touchStart(event); + touchDown(event); invalidate(); return true; case MotionEvent.ACTION_MOVE: @@ -445,7 +459,7 @@ public class GestureOverlayView extends FrameLayout { return false; } - private void touchStart(MotionEvent event) { + private void touchDown(MotionEvent event) { mIsListeningForGestures = true; float x = event.getX(); @@ -548,7 +562,9 @@ public class GestureOverlayView extends FrameLayout { } if (box.squareness > mGestureStrokeSquarenessTreshold || - angle < mGestureStrokeAngleThreshold) { + (mOrientation == ORIENTATION_VERTICAL ? + angle < mGestureStrokeAngleThreshold : + angle > mGestureStrokeAngleThreshold)) { mIsGesturing = true; setCurrentColor(mCertainGestureColor); @@ -606,7 +622,7 @@ public class GestureOverlayView extends FrameLayout { actionListeners.get(i).onGesturePerformed(GestureOverlayView.this, mCurrentGesture); } - } + } private class FadeOutRunnable implements Runnable { boolean fireActionPerformed; |