Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ScrollableImageView extends ImageView {
- private GestureDetectorCompat gestureDetectorCompat;
- public ScrollableImageView(Context context) {
- this(context, null);
- }
- public ScrollableImageView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- new Matrix();
- }
- public ScrollableImageView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- setScaleType(ScaleType.MATRIX);
- gestureDetectorCompat = new GestureDetectorCompat(context,
- new MySimpleOnGestureListener(this));
- }
- @Override
- public boolean onTouchEvent(@NonNull MotionEvent event) {
- gestureDetectorCompat.onTouchEvent(event);
- return true;
- }
- public void scroll(float distance) {
- Matrix imageMatrix = getImageMatrix();
- imageMatrix.postTranslate(distance, 0);
- setImageMatrix(imageMatrix);
- invalidate();
- }
- private static class MySimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener {
- private ScrollableImageView scrollableImageView;
- public MySimpleOnGestureListener(ScrollableImageView scrollableImageView) {
- this.scrollableImageView = scrollableImageView;
- }
- @Override
- public boolean onDown(MotionEvent e) {
- Utils.log("onDown");
- return true;
- }
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
- scrollableImageView.scroll(-distanceX);
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement