Home | History | Annotate | Download | only in eventhandlingadvanced
      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