-2

首先让我原谅这个问题,我知道很多人在这里问过这个问题,但是我太笨了,没有找到适合我的正确答案。我里面有一个 ScrollView 和许多 TextViews 和 ImageViews。我想像电影演职员表一样在屏幕上滚动所有这些东西。我找到了这个方法。它工作,但只有几秒钟,然后停止。:

            public void scrollRight(final ScrollView h){
    new CountDownTimer(2000, 1) { 

        public void onTick(long millisUntilFinished) { 
            h.scrollTo(0,(int) (2000-millisUntilFinished)/25);

        } 

        public void onFinish() { 

        } 
     }.start(); }
4

2 回答 2

1

您可以使用滚动条创建平滑的滚动动画。这里有一个例子: Android: Scroller Animation?

基本上,您需要做的就是从 0 开始滚动到列表的末尾,并使用滚动值调用列表的 scrollTo 。

另一种选择是创建一个每次调用 scrollBy 的计时器。

编辑:另外,您创建 CountDownTimer 的方式使其运行 2000 毫秒,并每 1 毫秒调用一次 onTick。如果您希望它运行更长时间,只需增加总时间即可。我还建议使用更大的间隔 - 1 毫秒对于显示目的来说太频繁了。尝试这个:

new CountDownTimer(10000, 25) { 
     public void onTick(long millisUntilFinished) { 
     h.scrollBy(1,0);
}
于 2013-04-21T10:48:31.370 回答
0

您还可以使用 ObjectAnimator 来实现:

ObjectAnimator.ofInt(view, "scrollY", 0, view.getBottom).setDuration(1000).start;

于 2017-03-08T22:33:41.470 回答