Advertisement
Guest User

Untitled

a guest
Feb 25th, 2015
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. public class ScrollableImageView extends ImageView {
  2.     private GestureDetectorCompat gestureDetectorCompat;
  3.  
  4.     public ScrollableImageView(Context context) {
  5.         this(context, null);
  6.     }
  7.  
  8.     public ScrollableImageView(Context context, AttributeSet attrs) {
  9.         this(context, attrs, 0);
  10.         new Matrix();
  11.     }
  12.  
  13.     public ScrollableImageView(Context context, AttributeSet attrs, int defStyleAttr) {
  14.         super(context, attrs, defStyleAttr);
  15.         setScaleType(ScaleType.MATRIX);
  16.  
  17.         gestureDetectorCompat = new GestureDetectorCompat(context,
  18.                 new MySimpleOnGestureListener(this));
  19.     }
  20.  
  21.     @Override
  22.     public boolean onTouchEvent(@NonNull MotionEvent event) {
  23.         gestureDetectorCompat.onTouchEvent(event);
  24.         return true;
  25.     }
  26.  
  27.     public void scroll(float distance) {
  28.         Matrix imageMatrix = getImageMatrix();
  29.         imageMatrix.postTranslate(distance, 0);
  30.         setImageMatrix(imageMatrix);
  31.         invalidate();
  32.     }
  33.  
  34.     private static class MySimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener {
  35.         private ScrollableImageView scrollableImageView;
  36.  
  37.         public MySimpleOnGestureListener(ScrollableImageView scrollableImageView) {
  38.             this.scrollableImageView = scrollableImageView;
  39.         }
  40.  
  41.         @Override
  42.         public boolean onDown(MotionEvent e) {
  43.             Utils.log("onDown");
  44.             return true;
  45.         }
  46.  
  47.         @Override
  48.         public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
  49.             scrollableImageView.scroll(-distanceX);
  50.             return true;
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement