2012-09-03 48 views
1

我有这样的代码如何设置颜色为辅助绘制在进度条

pb = (ProgressBar) findViewById(R.id.progressBar1); 
    final float[] roundedCorners = new float[] { 5, 5, 5, 5, 5, 5, 5, 5 }; 
    ShapeDrawable pgDrawable = new ShapeDrawable(new RoundRectShape(roundedCorners, null, null)); 
    String MyColor = "#00FF00"; 
    pgDrawable.getPaint().setColor(Color.parseColor(MyColor)); 
    ClipDrawable progress = new ClipDrawable(pgDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); 
    pb.setProgressDrawable(progress); 
    pb.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal)); 

在这段代码的问题是,对于进度绘制和二级进度绘制我有相同的颜色。

如何设置社会进步颜色?

回答

9

指定progressDrawable像下面的例子:

这正好布局:

<ProgressBar 
    android:id="@+id/gauge" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="4dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/section" 
    android:progress="50" 
    android:progressDrawable="@drawable/progressbar"/> 

这正好drawable/progressbar.xml,在这里你可以指定背景颜色和两个进度条。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@android:id/background"> 
    <shape> 
     <gradient 
       android:startColor="@color/basecolor" 
       android:endColor="@color/basecolor" 
       android:angle="270" 
     /> 
    </shape> 
</item> 

<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape> 
      <gradient 
        android:startColor="#808080" 
        android:endColor="#808080" 
        android:angle="270" 
      /> 
     </shape> 
    </clip> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <gradient 
       android:startColor="#ffcc33" 
       android:endColor="#ffcc33" 
       android:angle="270" /> 
     </shape> 
    </clip> 
</item> 

+0

你知道@color中的状态选择器是否被考虑在内吗? – njzk2

+0

@ njzk2它用于绘制背景,在其上绘制实际进度。 –

2

我也面临着同样的问题。 我在上面的答案中增加了一些额外的分数。 seekbar或progressbar分三层绘制。第一层是背景层,高于第二层进度层,高于主要进度。

,您可以设置自定义颜色,以进度条这样

<item android:id="@android:id/background" 
    android:drawable="@drawable/progress_bar_nor">  
</item>  
<item android:id="@android:id/secondaryProgress" 
    android:drawable="@drawable/progress_bar_nor">  
</item> 
<item 
    android:id="@android:id/progress" 
    android:drawable="@drawable/progress_bar_sel"/> 

或类似Ridcully在上面的回答说

它发生,部分Android OS的版本不使用二次进度的背景颜色。我检查了Android 4.1.2三星8英寸平板电脑。这是行不通的。在这种情况下,使用背景通过设置背景,二级进度颜色来设置次要进度的自定义颜色