Вы можете различать эти два после того, как происходит onFling (). Сначала в onDown () сохраняем текущие координаты изображения как переменные класса. OnScroll () будет работать как положено, но если onFling () определит, что это событие сброса, просто восстановите исходные координаты, которые были сохранены в onDown (). Я нашел, что это работает очень хорошо.
@Override
public boolean onDown(MotionEvent e) {
// remember current coordinates in case this turns out to be a fling
mdX = imageView.dX;
mdY = imageView.dY;
return false;
}