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

我希望顺利移动到我的自定义视图中的下一个滚动位置(按下button或事件)。 如何实现这个? 首先我看不到滚动animation类(只有alpha,旋转,缩放和翻译)。 其次,有animation类,我不能看到迭代(只要滚动100像素权利,我们有什么位置)只有绝对的(即从一个常量值animation到另一个)。

Solutions Collecting From Web of "如何animation滚动位置? 如何顺利滚动?"

假设你正在使用ScrollView,smoothScrollTo(…)是否适合你?

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

使用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(); } 

通过使用Scroller / OverScroller (计算滚动偏移的时间插值), GestureDetectors (启动滚动对象)和View的onComputeScroll方法(隐式是您的animation循环)的组合来完成animation滚动。

官方的android文档现在有一个关于这个话题的详细教程。 http://developer.android.com/training/gestures/scroll.html

请参阅view_cache_demo示例代码以了解如何执行animation滚动。 它在2D中工作,高速caching复杂的绘图,也可以处理跳跃手势,但是可以根据需要简化所有这些操作。