2013-03-07 2 views
0

У меня есть HorizontalScrollView, в котором я разместил изображение шириной 5000 пикселей и в основном представляет собой масштаб. Я переустановил метод onScroll() для HorizontalScrollView, чтобы получить прокрученное расстояние x.HorizontalScrollView не дает точную прокрутку X в android

При прокрутке до конца просмотра расстояние, которое я получаю в параметре distanceX onScroll(), не равно точному числу пикселей, с помощью которых изображение фактически прокручивается. Почему нет?

Я использую уровень API 9.

+0

, что API? – Niko

+0

Я использую уровень API 9 –

+0

Не могу найти onScroll метод в HorizontalScrollView – Niko

ответ

0

Если вы имеете в виду, что вы используете GestureDetector.SimpleOnGestureListener для обнаружения прокрутки, и вы заинтересованы в distanceX, чтобы получить общее прокручиваются расстояние, которое необходимо сохранить й положение при начале прокрутки, затем настройте эту позицию на основе всех событий onScroll. В документации указано, что distanceX представляет:

distanceX Расстояние по оси X, прокручиваемой с момента последнего вызова onScroll. Это НЕ расстояние между e1 и e2.

+0

Итак, чтобы получить полный прокрученный distace, мне нужно сохранить разницу между e1 и e2 каждый раз, когда вызывается OnScroll, а затем добавляете различия? Какие корректировки мне нужно сделать? –

+0

Для чего я понимаю документацию, как это сделать, вычислите смещение x на каждом событии и добавьте это, чтобы начать положение x. – Niko

+0

вот что я пробовал, но он не работал: в методе onScroll я написал следующий код mEventDistance + = Math.abs (e2.getX() - e1.getX()); и в OnTouch HorizantalScrollView я сохраняю начальный X на ACTION_DOWN. Но когда я добавляю эти значения (mEventDistance + initialx). он не дает мне точных пикселей. Не могли бы вы поделиться некоторым источником подсказок. –

0

Я надеюсь, что это поможет вам уровень

int scrollPos = (int) (horizontalScrollview.getScrollX()); 
Смежные вопросы