MaterialProgressBar
介绍:
兼容Android 4.0+以上的进度条,仍然是使用ProgressBar控件,不过是通过设置自定义的Drawable来实现。
运行效果:
使用说明:
MaterialProgressBar其实并没有定义进度条本身,而是把自定义的Drawable
设置到ProgressBar
上。
比如,在ProgressBar
上设置HorizontalIndeterminateProgressDrawable
:
progressBar.setIndeterminateDrawable(new HorizontalIndeterminateProgressDrawable(this));
为了让你的ProgressBar
在所有版本上都有正确的大小,你需要使用我们提供的style。其内部实现的技巧是用android:minHeight
, android:maxHeight
(and width)来控制Drawable
的大小。
-
Widget.MaterialProgressBar.ProgressBar.Horizontal
-
Widget.MaterialProgressBar.ProgressBar
-
And more size and no-padding variants in styles.xml
比如,定义一个indeterminate horizontal ProgressBar
:
<ProgressBar
android:id="@+id/indeterminate_horizontal_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />
别忘记创建和设置Drawable
。
你还可以通过调用setShowTrack()
和 setUseIntrinsicPadding()来自定义`` Drawable的表现。与着色有关的方法也是兼容了的`setTint()`, `setTintList()` `和 setTintMode()这些方法都可以直接使用。` ``
更多例子的细节,可以参考样例项目中MainActivity
的onCreate()
方法 和 main_activity.xml 布局。
ProGuard
如果你使用了ProGuard,需要在ProGuard配置文件中添加如下的一行代码,这样ObjectAnimator
才能正常工作。
-keep class me.zhanghai.android.materialprogressbar.** { *; }