我有一个应用程序,我使用一个服务器来做任务,然后你可以改变你的任务的进度从0到100,但把我的进度条一个简单的颜色似乎有点太少。我想知道是否有可能假设它开始是红色的,越接近50它就越变黄,越接近100它就越变绿。这有可能吗?
我已经通过代码设置了进度条的颜色,但我似乎找不到任何允许我这样做的方法。
如果您正在使用horizontal ProgressBar
,您可以使用ColorFilter
如下:
progressBar.getProgressDrawable().setColorFilter(
Color.RED, android.graphics.PorterDuff.Mode.SRC_IN);
您需要添加您所描述的逻辑来设置各自的颜色。
自Lollipop (API 21)
以来,您可以设置进度色调:
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
对于pre-lollipop版本,你可以这样做:
ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressbar);
int color = 0xFF00FF00;
progressbar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
progressbar.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
希望有帮助!