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