在进度条android上添加动画

时间:2016-08-04 15:16:19

标签: android android-progressbar

我想在android(@android:style/Widget.DeviceDefault.ProgressBar)中自定义进度条,以便更改颜色(例如,第一次旋转时为红色,然后是蓝色,然后是黄色等)。已经在互联网上阅读了一些内容并试图使用动画列表,但它没有用。关于如何实现这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

在较新版本的Android(API 21+)中,您可以以编程方式更改颜色。

我会使用倒计时器,这可能不是最好的方法,但我会这样做: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));