From 4525ce269f017010e2cb45c29121ee82aacf7dd2 Mon Sep 17 00:00:00 2001 From: Robert Nordan Date: Wed, 2 Oct 2013 09:18:04 +0200 Subject: [PATCH] Added Shove Gesture to example activity Doing a two-finger shove will increase or decrease the alpha value of the planet, rendering it more or less transparent. --- .../android/multitouch/TouchActivity.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/com/almeros/android/multitouch/TouchActivity.java b/src/com/almeros/android/multitouch/TouchActivity.java index 50aa30d..52544d9 100644 --- a/src/com/almeros/android/multitouch/TouchActivity.java +++ b/src/com/almeros/android/multitouch/TouchActivity.java @@ -14,6 +14,7 @@ import com.almeros.android.multitouch.gesturedetectors.MoveGestureDetector; import com.almeros.android.multitouch.gesturedetectors.RotateGestureDetector; +import com.almeros.android.multitouch.gesturedetectors.ShoveGestureDetector; /** * Test activity for testing the different GestureDetectors. @@ -28,11 +29,13 @@ public class TouchActivity extends Activity implements OnTouchListener { private float mRotationDegrees = 0.f; private float mFocusX = 0.f; private float mFocusY = 0.f; + private int mAlpha = 255; private int mImageHeight, mImageWidth; private ScaleGestureDetector mScaleDetector; private RotateGestureDetector mRotateDetector; private MoveGestureDetector mMoveDetector; + private ShoveGestureDetector mShoveDetector; @Override public void onCreate(Bundle savedInstanceState) { @@ -56,12 +59,14 @@ public void onCreate(Bundle savedInstanceState) { mScaleDetector = new ScaleGestureDetector(getApplicationContext(), new ScaleListener()); mRotateDetector = new RotateGestureDetector(getApplicationContext(), new RotateListener()); mMoveDetector = new MoveGestureDetector(getApplicationContext(), new MoveListener()); + mShoveDetector = new ShoveGestureDetector(getApplicationContext(), new ShoveListener()); } public boolean onTouch(View v, MotionEvent event) { mScaleDetector.onTouchEvent(event); mRotateDetector.onTouchEvent(event); mMoveDetector.onTouchEvent(event); + mShoveDetector.onTouchEvent(event); float scaledImageCenterX = (mImageWidth*mScaleFactor)/2; float scaledImageCenterY = (mImageHeight*mScaleFactor)/2; @@ -73,6 +78,7 @@ public boolean onTouch(View v, MotionEvent event) { ImageView view = (ImageView) v; view.setImageMatrix(mMatrix); + view.setAlpha(mAlpha); return true; // indicate event was handled } @@ -109,5 +115,18 @@ public boolean onMove(MoveGestureDetector detector) { return true; } } + + private class ShoveListener extends ShoveGestureDetector.SimpleOnShoveGestureListener { + @Override + public boolean onShove(ShoveGestureDetector detector) { + mAlpha += detector.getShovePixelsDelta(); + if (mAlpha > 255) + mAlpha = 255; + else if (mAlpha < 0) + mAlpha = 0; + + return true; + } + } } \ No newline at end of file