2016-04-24 81 views
1

CircularProgressDrawable如何使用圓形進度繪製加陣列顏色

這是我使用我的項目庫。 我的做法是:

<com.rey.material.widget.ProgressView 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:id="@+id/progressviewmain" 
     app:pv_progressStyle="@style/Material.Widget.ProgressView.Circular" 
     app:pv_circular="true" 
     android:background="#ffffff" 
     app:pv_progressMode="indeterminate" 
     app:pv_autostart="true" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 

和代碼是:

progressView = (ProgressView)findViewById(R.id.progressviewmain); 

功能是:

private void startprogress(ListView listView, ProgressView progressView){ 
    progressView.setVisibility(View.VISIBLE); 
} 
    private void stopprogress(ListView listView, ProgressView progressView){ 
     listView.setVisibility(View.VISIBLE); 
     progressView.setVisibility(View.GONE); 
    } 

所有這一切工作正常,但因爲在文檔中,我們可以看到CircularProgressDrawable 2不同的形式,我無法獲得第一個顏色在改變。如何給顏色數組輸入?如何使用attr?

回答

4

正如在doc說可以得到色彩的視圖陣列cpd_strokeColors

cpd_strokeColors - 色彩的陣列將被用作行程的顏色(不確定模式)。

更新1: 要改變已在res/values/styles.xml創建一個樣式像這樣的屬性:

<style name="CircularProgress"> 
     <item name="cpd_padding">0dp</item> 
     <item name="cpd_initialAngle">0</item> 
     <item name="cpd_maxSweepAngle">270</item> 
     <item name="cpd_minSweepAngle">1</item> 
     <item name="cpd_strokeSize">4dp</item> 
     <item name="cpd_strokeColor">@color/colorAccent</item> 
     <item name="cpd_strokeSecondaryColor">@android:color/transparent</item> 
     <item name="cpd_reverse">false</item> 
     <item name="cpd_strokeColors">@array/rainbow</item> 
     <item name="cpd_rotateDuration">1000</item> 
     <item name="cpd_transformDuration">600</item> 
     <item name="cpd_keepDuration">200</item> 
     <item name="cpd_transformInterpolator">@android:anim/decelerate_interpolator</item> 
     <item name="pv_progressMode">buffer</item> 
     <item name="cpd_inAnimDuration">0</item> 
     <item name="cpd_outAnimDuration">@android:integer/config_mediumAnimTime</item> 
</style> 

然後將其分配到您的視圖:

<com.rey.material.widget.ProgressView 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/progressviewmain" 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     app:pv_autostart="true" 
     app:pv_circular="true" 
     app:pv_progressMode="indeterminate" 
     app:pv_progressStyle="@style/CircularProgress"/> 

它將工作。

+0

其實我很新手所以請你能告訴我執行的方法 –

+0

其實怎樣從xml或java調用cpd_strokeColors ...........我想在XML中使用它我不能這樣做,也沒有任何方法在Java中命名爲 –

+0

我認爲這將是這樣的: 'app:cpd_strokeColors =「@ color/rainbow」' while 'rainbow'是'res/values/colors.xml'中顏色數組的名稱,它就像: '' ' @ color/bright_pink' ' @ color /紅色'' @色/橙色'' @顏色/黃色'' '

相關問題