我在xml中声明了进度条。
<ProgressBar
android:id="@+id/pbSurvey"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_above="@+id/lblSkipSurvey"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:maxHeight="10dip"
android:minHeight="10dip"
android:progress="50"
android:visibility="visible" />
在运行时,我将progressBar的进度颜色更改为白色。
pbSurvey.setProgress(progress);
pbSurvey.getProgressDrawable().setBounds(bounds);
pbSurvey.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC);
每次只显示深绿色。没有为进度条设置主题和样式。提前致谢
答案 0 :(得分:0)
我目前正在使用这段代码:
public static final float[] roundedCorners = new float[] { 5,5,5,5,5,5,5,5 };
final ShapeDrawable pgDrawable = new ShapeDrawable(new RoundRectShape(Constants.roundedCorners, null, null));
final LinearGradient gradient = new LinearGradient(0, 0, displayWidth / 2, 0, ctx.getResources().getColor(
color.aa_blue), ctx.getResources().getColor(color.aa_red), android.graphics.Shader.TileMode.CLAMP);
pgDrawable.getPaint().setStrokeWidth(3);
pgDrawable.getPaint().setDither(true);
pgDrawable.getPaint().setShader(gradient);
ClipDrawable progress = new ClipDrawable(pgDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
par.setProgressDrawable(progress);
par.setBackgroundResource(android.R.drawable.progress_horizontal);
它正在做一个带阴影的颜色进度条,您可以使用它或只是在两侧设置相同的颜色。我猜您的错误是使用pbSurvey.getIndeterminateDrawable().setColorFilter()
,而您应该拨打pbSurvey.setBackgroundResource()
答案 1 :(得分:0)
我用它来改变progressBar的颜色,没有渐变简单的颜色变化。
progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
progressBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.colorPrimary), PorterDuff.Mode.SRC_IN);
R.color.colorPrimary
在我的相应文件夹中,需要相应更改。