Подтвердить что ты не робот

Как оживить положение прокрутки? Как прокручивать плавно?

Я хочу плавно перейти к следующей позиции прокрутки в своем пользовательском представлении (при нажатии кнопки или событии). Как это реализовать? Прежде всего, я не вижу класс анимации прокрутки (только альфа, поворот, масштабирование и перевод). Во-вторых, имея класс анимации, я не могу видеть итеративный (скажем, прокручивать 100-пиксельные права, независимо от того, какая у нас есть позиция), только абсолютные (т.е. Анимировать от одного постоянного значения к другому).

4b9b3361

Ответ 2

Используя ObjectAnimator, это пример прокрутки вверх:

public void scrollToTop() {
    int x = 0;
    int y = 0;

    ObjectAnimator xTranslate = ObjectAnimator.ofInt(mScrollView, "scrollX", x);
    ObjectAnimator yTranslate = ObjectAnimator.ofInt(mScrollView, "scrollY", y);

    AnimatorSet animators = new AnimatorSet();
    animators.setDuration(1000L);
    animators.playTogether(xTranslate, yTranslate);

    animators.addListener(new AnimatorListener() {

        @Override
        public void onAnimationStart(Animator arg0) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onAnimationRepeat(Animator arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animator arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationCancel(Animator arg0) {
            // TODO Auto-generated method stub

        }
    });
    animators.start();
}

Ответ 3

Анимационная прокрутка выполняется с помощью комбинации Scroller/OverScroller (для вычисления временных интерполированных значений смещений прокрутки), GestureDetectors (для запуска объекта скроллера) и метод onComputeScroll представления (который неявно является вашим циклом анимации).

Официальные андроидные документы теперь имеют подробное руководство по именно этой теме. http://developer.android.com/training/gestures/scroll.html

Ответ 4

Смотрите пример view_cache_demo, чтобы увидеть, как сделать анимированную прокрутку. Он работает в 2D, кэширует сложный чертеж, а также обрабатывает жест fling, но вы можете упростить все это при необходимости.