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