OSDN Git Service

Fixes #1899284 and #1899287. Give applications more control over the gesture's path.
authorRomain Guy <romainguy@android.com>
Tue, 16 Jun 2009 22:53:27 +0000 (15:53 -0700)
committerRomain Guy <romainguy@android.com>
Tue, 16 Jun 2009 22:53:27 +0000 (15:53 -0700)
This change adds new APIs to control the gesture's path by deciding whether the
path should be drawn and by getting the ability to get the Path itself and
draw it differently.

core/java/android/gesture/GestureOverlayView.java

index fd6d850..14323b8 100755 (executable)
@@ -84,6 +84,7 @@ public class GestureOverlayView extends FrameLayout {
 
     private final Rect mInvalidRect = new Rect();
     private final Path mPath = new Path();
+    private boolean mGestureVisible;
 
     private float mX;
     private float mY;
@@ -274,14 +275,6 @@ public class GestureOverlayView extends FrameLayout {
         return mCurrentGesture;
     }
 
-    public long getFadeOffset() {
-        return mFadeOffset;
-    }
-
-    public void setFadeOffset(long fadeOffset) {
-        mFadeOffset = fadeOffset;
-    }
-
     public void setGesture(Gesture gesture) {
         if (mCurrentGesture != null) {
             clear(false);
@@ -304,6 +297,31 @@ public class GestureOverlayView extends FrameLayout {
         invalidate();
     }
 
+    public Path getGesturePath() {
+        return mPath;
+    }
+
+    public Path getGesturePath(Path path) {
+        path.set(mPath);
+        return path;
+    }
+
+    public boolean isGestureVisible() {
+        return mGestureVisible;
+    }
+
+    public void setGestureVisible(boolean visible) {
+        mGestureVisible = visible;
+    }
+
+    public long getFadeOffset() {
+        return mFadeOffset;
+    }
+
+    public void setFadeOffset(long fadeOffset) {
+        mFadeOffset = fadeOffset;
+    }
+
     public void addOnGestureListener(OnGestureListener listener) {
         mOnGestureListeners.add(listener);
     }
@@ -372,7 +390,7 @@ public class GestureOverlayView extends FrameLayout {
     public void draw(Canvas canvas) {
         super.draw(canvas);
 
-        if (mCurrentGesture != null) {
+        if (mCurrentGesture != null && mGestureVisible) {
             canvas.drawPath(mPath, mGesturePaint);
         }
     }