如何在Android中更改ProgressBar的进度指示器颜色

206

我设置了一个水平的ProgressBar

我想把进度条的颜色改成黄色。

<ProgressBar 
    android:id="@+id/progressbar" 
    android:layout_width="80dip" 
    android:layout_height="20dip"  
    android:focusable="false" 
    style="?android:attr/progressBarStyleHorizontal" />

问题是在不同的设备上,进度颜色不同。因此,我希望修复进度颜色。


以上的答案改变了整个背景颜色,而且不明确它是否将进度条的高度改变到最大。这在XML中无法更改。更好的方法是仅更改进度条的状态,即已完成多少,例如20%红色,50%黄色,70%及以上绿色。您可以在Java中以编程方式实现它。如果您有其他解决方案,请分享您的答案。 - Mubashar
21个回答

0
如果您想在Android中以编程方式设置水平进度条的主要和次要进度颜色,请使用以下代码片段:
int[][] states = new int[][] {
                        new int[] {-android.R.attr.state_checked},
                        new int[] {android.R.attr.state_checked},
                };

                int[] secondaryColor = new int[] {
                        context.getResources().getColor(R.color.graph_line_one),
                        Color.RED,
                };

                int[] primaryColor = new int[] {
                        context.getResources().getColor(R.color.middle_progress),
                        Color.BLUE,
                };
                progressbar.setProgressTintList(new ColorStateList(states, primaryColor));
                progressbar.setSecondaryProgressTintList(new ColorStateList(states, secondaryColor));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接