如何动画滚动位置?如何顺利滚动?

Suz*_*ioc 26 animation android drawing scroll

我希望在我的自定义视图(按下按钮或事件)中顺利移动到下一个滚动位置.怎么实现这个?首先,我看不到滚动动画类(只有alpha,旋转,缩放和平移).其次,有动画类,我看不到迭代的(比如滚动100像素权利,无论我们有什么位置)只有绝对的(即从一个常数值动画到另一个常数值).

Ian*_*ick 43

假设您使用的是ScrollView,smoothScrollTo(...)是否适合您?

http://developer.android.com/reference/android/widget/ScrollView.html#smoothScrollTo%28int,%20int%29


小智 33

使用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();
}
Run Code Online (Sandbox Code Playgroud)