我需要的代碼就像@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