Guest User

Untitled

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