如何改变startScroll()的速度

时间:2013-01-06 07:52:17

标签: android textview

我使用this答案在我的应用中实现了一个选框textView,但我希望能够更改它的速度,而不必设置{{{}的持续时间1}}。 如果我设置Scroller的持续时间,那么文本的速度将取决于文本的数量,但我想要的是速度是恒定的。 有没有办法做到这一点? 如果没有,有没有其他方法使文本自动以一定的速度滚动?

1 个答案:

答案 0 :(得分:2)

你误解了代码。

您必须设置滚动条的持续时间,否则它将知道需要多长时间。

所以现在我们必须使卷轴的速度保持不变。

但是velocity = distance / duration

因此,使持续时间变为常数的方法是使持续时间成为距离的函数

例如。如果duration =2* distance

velocity= 2

等等。

来自您发布的代码

     int distance = scrollingLen - (getWidth() + mXPaused);
     int duration = (new Double(mRndDuration * distance * 1.00000
                                  / scrollingLen)).intValue();

现在duration= distance * constant /scrollingLen

所以只需删除scrollingLen,这将是距离的纯函数,为您提供恒定的速度

duration= distance * constant /anotherConstant