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