2011-06-27 54 views
2

我在列表元素中追加進度條,並且動態更新該進度條。 但是,即時通訊面臨的奇情是..使用ProgressBar.setProgressDrawable執行顏色問題

當我在我的列表中有多個元素,我使用Progressbar.setProgressDrwable(),列表中的所有progressbars更新改變進度的顏色,並根據需要它們的顏色被改變。

但是,當我在列表中只有一個單一元素時,此方法不起作用,所有我可以看到我的進度條的背景,而不是顏色。

我也創建了我的XML文件進度條的背景和顏色,但也沒有工作。

我對ProgressDrawable XML代碼

FirstColor.xml

<item android:id="@android:id/background"> 
    <shape> 
     <corners android:radius="15dip" /> 
     <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9" 
      android:endColor="#A9A9A9" android:angle="90" /> 
     <stroke android:width="5dp" android:color="#A9A9A9" /> 
    </shape> 
</item> 

<item android:id="@android:id/progress"> 
    <scale android:scaleGravity="left" android:scaleWidth="100%" > 
     <shape> 
      <corners android:radius="15dip" /> 
      <gradient android:startColor="#ADFF2F" android:centerColor="#ADFF2F" 
       android:endColor="#ADFF2F" android:angle="90" /> 
      <stroke android:width="5dp" android:color="#ADFF2F" /> 
     </shape> 
    </scale> 
</item> 

SecondColor.xml

<item android:id="@android:id/background"> 
    <shape> 
     <corners android:radius="15dip" /> 
     <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9" 
      android:endColor="#A9A9A9" android:angle="90" /> 
     <stroke android:width="5dp" android:color="#A9A9A9" /> 
    </shape> 
</item> 

<item android:id="@android:id/progress"> 
    <scale android:scaleGravity="left" android:scaleWidth="100%" > 
     <shape> 
      <corners android:radius="15dip" /> 
      <gradient android:startColor="#FFBF00" android:centerColor="#FFBF00" 
       android:endColor="#FFBF00" android:angle="90" /> 
      <stroke android:width="5dp" android:color="#FFBF00" /> 
     </shape> 
    </scale> 
</item> 

和讀音字使用以改變進度條的顏色中的Java代碼是

progressbar1.setProgressDrawable(getResources()getDrawable(R.drawable.FirstColor)。); progressbar1.setProgress(amntPercentage.intValue());

progressbar1.setProgressDrawable(getResources()。getDrawable(R.drawable.SecondColor)); progressbar1.setProgress(amntPercentage.intValue());

如果有人在那裏可以解決我的問題,這將是一個很大的幫助.. 在此先感謝..

回答

2

在設置新progressDrawable和設置progressvalue,請確保您沒有設置好的了progressvalue到'0'。 發生這種情況是因爲在進度條的style.xml中,我們僅爲開始,中間和結束定義了xml字段;不是'0'。

我在更改drawable之前將progressvalue設置爲'1',並且我的項目工作正常。