Get coordinates of a Bitmap image from an ImageView twice as small

后端 未结 1 1460
刺人心
刺人心 2021-01-19 23:20

I have an ImageView containing a Bitmap image. The image is twice as big as its container. I have declared onScroll() to be able to move around the Bitmap image

1条回答
  •  生来不讨喜
    2021-01-20 00:04

    I haven't found an actual way to do this. Here's the method I've used:

    Upon creating the ImageView, scroll to a known location.

    int ivX = 0;
    int ivY = 0;
    
    _iv.invalidate();
    _iv.scrollTo(ivX, ivY);
    

    This way I have the exact (x, y) coordinates of where I am. Then, I've implemented the onScroll() method and used the generated distances to recalculate my (x, y) coordinates:

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        //Add the scroll distance to the old X, Y coordinates
        ivX += distanceX;
        ivY += distanceY;
    
        //Scroll to the new location
        _iv.scrollTo(ivX, ivY);
    
        return false;
    } //End onScroll()
    

    In addition, to get a better understanding of how scrollTo() works and the relationship between the coordinates of the image and its container, follow this link to a different post of mine.

    0 讨论(0)
提交回复
热议问题