我需要的代码就像@sidhanshu_udawat所做的一样。 这是一个很好的基础。大赢,因为它运行在自己的线程上。感谢那个例子。
但是,当我拿着该代码并尝试它时,出现了一个问题,它会增加然后停止。
我改变了代码(粘贴在下面),现在如果你用下面的代码发送你的seekbar,你会看到seekbar在规模上下动画。
isRunning - 控制从活动
而且,我需要停止动画当有人点击一个按钮,所以我增加了布尔isRunning作为我的活动成员。现在,当他们点击按钮时,我将isRunnig设置为false,SeekBar停止。
设置您的搜索栏像下面,然后调用方法:
animSeekBar.incrementProgressBy(1);
animSeekBar.setMax(100);
animateSeek(animSeekBar,100);
private void animateSeek(final SeekBar mSeek, final int toVal) {
new Thread(new Runnable() {
@Override
public void run() {
boolean isIncrementing = true;
int mProgress = 0;
isRunning = true;
while (isRunning) {
if (isIncrementing){
mProgress++;
}
else{
mProgress--;
}
mSeek.setProgress(mProgress);
if (mProgress >= toVal) {
isIncrementing = false;
} else if (mProgress <= 0) {
isIncrementing = true;
}
try {
Thread.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
最重要的问题是哪些事件您更新seekbars?我有一个类似的情况(3条0-100),所有三条一起应该总是100 ...作品没有“跳跃”对我来说......那么A会更新哪个事件? – WarrenFaith 2011-06-05 16:47:17
无论B,C还是D改变,我都重新计算3的平均值并将其设置为A的值。这仅在用户只需点击3个seekBars而不是在持续改变时完成。 – 2011-06-05 17:17:49
啊好吧,现在我明白了... – WarrenFaith 2011-06-05 17:51:26