1 package com.davemorrissey.labs.subscaleview.test.eventhandlingadvanced; 2 3 import android.graphics.PointF; 4 import android.os.Bundle; 5 import android.view.GestureDetector; 6 import android.view.MotionEvent; 7 import android.view.View; 8 import android.widget.Toast; 9 10 import com.davemorrissey.labs.subscaleview.ImageSource; 11 import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView; 12 import com.davemorrissey.labs.subscaleview.test.AbstractPagesActivity; 13 import com.davemorrissey.labs.subscaleview.test.Page; 14 import com.davemorrissey.labs.subscaleview.test.R.id; 15 16 import java.util.Arrays; 17 18 import static com.davemorrissey.labs.subscaleview.test.R.string.*; 19 import static com.davemorrissey.labs.subscaleview.test.R.layout.*; 20 21 public class AdvancedEventHandlingActivity extends AbstractPagesActivity { 22 23 public AdvancedEventHandlingActivity() { 24 super(advancedevent_title, pages_activity, Arrays.asList( 25 new Page(advancedevent_p1_subtitle, advancedevent_p1_text), 26 new Page(advancedevent_p2_subtitle, advancedevent_p2_text), 27 new Page(advancedevent_p3_subtitle, advancedevent_p3_text), 28 new Page(advancedevent_p4_subtitle, advancedevent_p4_text), 29 new Page(advancedevent_p5_subtitle, advancedevent_p5_text) 30 )); 31 } 32 33 @Override 34 protected void onCreate(Bundle savedInstanceState) { 35 super.onCreate(savedInstanceState); 36 final SubsamplingScaleImageView imageView = findViewById(id.imageView); 37 final GestureDetector gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { 38 @Override 39 public boolean onSingleTapConfirmed(MotionEvent e) { 40 if (imageView.isReady()) { 41 PointF sCoord = imageView.viewToSourceCoord(e.getX(), e.getY()); 42 Toast.makeText(getApplicationContext(), "Single tap: " + ((int)sCoord.x) + ", " + ((int)sCoord.y), Toast.LENGTH_SHORT).show(); 43 } else { 44 Toast.makeText(getApplicationContext(), "Single tap: Image not ready", Toast.LENGTH_SHORT).show(); 45 } 46 return true; 47 } 48 @Override 49 public void onLongPress(MotionEvent e) { 50 if (imageView.isReady()) { 51 PointF sCoord = imageView.viewToSourceCoord(e.getX(), e.getY()); 52 Toast.makeText(getApplicationContext(), "Long press: " + ((int)sCoord.x) + ", " + ((int)sCoord.y), Toast.LENGTH_SHORT).show(); 53 } else { 54 Toast.makeText(getApplicationContext(), "Long press: Image not ready", Toast.LENGTH_SHORT).show(); 55 } 56 } 57 @Override 58 public boolean onDoubleTap(MotionEvent e) { 59 if (imageView.isReady()) { 60 PointF sCoord = imageView.viewToSourceCoord(e.getX(), e.getY()); 61 Toast.makeText(getApplicationContext(), "Double tap: " + ((int)sCoord.x) + ", " + ((int)sCoord.y), Toast.LENGTH_SHORT).show(); 62 } else { 63 Toast.makeText(getApplicationContext(), "Double tap: Image not ready", Toast.LENGTH_SHORT).show(); 64 } 65 return true; 66 } 67 }); 68 69 imageView.setImage(ImageSource.asset("sanmartino.jpg")); 70 imageView.setOnTouchListener(new View.OnTouchListener() { 71 @Override 72 public boolean onTouch(View view, MotionEvent motionEvent) { 73 return gestureDetector.onTouchEvent(motionEvent); 74 } 75 }); 76 } 77 78 } 79