2012-09-03 46 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英寸平板電腦。這是行不通的。在這種情況下,使用背景通過設置背景,二級進度顏色來設置次要進度的自定義顏色