0
我想在android(@android:style/Widget.DeviceDefault.ProgressBar
)中自定義進度條,使其改變顏色(例如,它會在第一次旋轉,然後是藍色,然後是黃色等時爲紅色)。在互聯網上閱讀過一些東西,並試圖使用動畫列表,但沒有奏效。任何想法如何實現這一目標?在進度條上添加動畫android
我想在android(@android:style/Widget.DeviceDefault.ProgressBar
)中自定義進度條,使其改變顏色(例如,它會在第一次旋轉,然後是藍色,然後是黃色等時爲紅色)。在互聯網上閱讀過一些東西,並試圖使用動畫列表,但沒有奏效。任何想法如何實現這一目標?在進度條上添加動畫android
在較新版本的Android(API 21+)中,您可以以編程方式更改顏色。
我會用一個countdownTimer,這可能不是最好的方式,但是這一點,我怎麼會做到這一點:P:
//In the public class, make a variable which can simply be an int
int colorCode = 0;
//then you put this code where your progress bar starts...
new CountdownTimer(3000,1000){
public void onTick(long millisUntilDone){
if(colorCode == 0){
colorCode = 1;
}else if(colorCode == 1){
colorCode = 2;
}else {
colorCode = 0;
}
if(colorCode == 0){
//To set it red, use:
//bar is a ProgressBar
bar.setProgressTintList(ColorStateList.valueOf(Color.RED));
}else if(colorCode == 1){
//To set it blue, use:
//bar is a ProgressBar
bar.setProgressTintList(ColorStateList.valueOf(Color.BLUE));
}else {
To set it green, use:
//bar is a ProgressBar
bar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
}
}
public void onFinish(){
//you don't have to set it to do anything...
}
}.start();
的API 16+我認爲這將更好地工作:
Drawable drawable = progressBar.getProgressDrawable();
drawable.setColorFilter(new LightingColorFilter(0xFF000000, customColorInt));
在每一個地方,你會用的地方就用這個:
bar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
OK謝謝你,我會嘗試做這樣的事情......但需要網絡連接找到一個更低的api的解決方案(需要支持16+)..我認爲,也許有一個更簡單的方法來實現直接在xml文件 – Lalilalu
我希望這會有所幫助:D –