2016-08-04 114 views
0

我想在android(@android:style/Widget.DeviceDefault.ProgressBar)中自定義進度條,使其改變顏色(例如,它會在第一次旋轉,然後是藍色,然後是黃色等時爲紅色)。在互聯網上閱讀過一些東西,並試圖使用動畫列表,但沒有奏效。任何想法如何實現這一目標?在進度條上添加動畫android

回答

0

在較新版本的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)); 
+0

OK謝謝你,我會嘗試做這樣的事情......但需要網絡連接找到一個更低的api的解決方案(需要支持16+)..我認爲,也許有一個更簡單的方法來實現直接在xml文件 – Lalilalu

+0

我希望這會有所幫助:D –