这是我在我的项目中使用的库。 我的方法是:
<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);
}
所有这一切都运行正常但是在文档中我们可以看到具有2种不同形式的CircularProgressDrawable我无法获得颜色正在变化的第一个。如何输入颜色数组?如何使用attr?
答案 0 :(得分: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"/>
它会起作用。