ScrollView自动滚动

时间:2013-04-21 10:40:02

标签: android scrollview

首先让我原谅这个问题,我知道很多其他人在这里问过这个问题,但我很蠢,所以没有找到任何正确的答案。我有一个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(); }

2 个答案:

答案 0 :(得分:1)

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

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

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

编辑:同样,你创建CountDownTimer的方式使它运行2000毫秒,并且每1ms调用onTick。如果您希望它运行更长时间,只需增加总时间。我还建议使用更大的间隔 - 1ms是经常用于显示目的。试试这个:

new CountDownTimer(10000, 25) { 
     public void onTick(long millisUntilFinished) { 
     h.scrollBy(1,0);
}

答案 1 :(得分:0)

您也可以使用ObjectAnimator来实现这一目标:

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