0

我正在使用这个答案在我的应用程序中实现一个选取框textView,但我希望能够更改它的速度而无需设置Scroller. 如果我为 设置持续时间Scroller,那么文本的速度将取决于有多少文本,但我想要的是速度保持不变。有没有办法做到这一点?如果没有,有没有其他方法可以让文本以一定的速度自动滚动?

4

1 回答 1

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
于 2013-01-06T08:03:34.150 回答