我想平稳地移动到下一个滚动位置在我的自定义视图(按下按钮或事件)。 如何实现这一点? 首先,我无法看到滚动动画类(仅限α,旋转,缩放和平移)。 其次,有动画类,我看不到一个迭代(说滚动100分像素的权利,我们拥有的任何位置)唯一的绝对的人(即从一个恒定值动画到另一个)。
Answer 1:
假设你使用的是滚动型,并smoothScrollTo(...)为你工作?
http://developer.android.com/reference/android/widget/ScrollView.html#smoothScrollTo%28int,%20int%29
Answer 2:
使用ObjectAnimator,这是滚动到顶部的示例:
public void scroolToTop() {
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();
}
Answer 3:
动画滚动通过使用滚轮/ OverScroller的组合进行(计算时间的滚动偏移的内插的值),GestureDetectors(启动卷轴对象)和观的onComputeScroll方法(其隐含地是动画循环)。
Android官方文档现在对正是这个话题一个详细的教程。 http://developer.android.com/training/gestures/scroll.html
Answer 4:
见view_cache_demo示例代码,看看如何做动画滚动。 它工作在2D,缓存复杂的图纸还负责一扔手势,但你可以一切必要的简化。
文章来源: How to animate scroll position? How to scroll smoothly?