大部分的Android App在程序需要加载数据或者进行一些耗时操作时,通常在App上会弹出一个ProgressDialog,告知用户需要等待。但这用户体验不够友好,于是在GitHub上找到了SmoothProgressBar这个开源工程,其用例截图如下:
在国外很多Google原生程序上,以及国内例如QQ、知乎的Android客户端上,都实现了类似的效果。但是GitHub上的工程是在Android Studio编译,通过Maven构建,直接使用在Eclipse上会有问题,因此将GitHub上的原工程稍加修改,使其能够直接在Eclpise上使用,改动后在Eclipse中使用的工程链接在本文结尾处。
在Eclipse中使用该工程时,首先在主工程里引入SmoothProgressBar-Library和CircularProgressBar-Library两个库。然后在res/values/styles.xml中对使用的Bar样式进行定义:
<style name="GPlusProgressBar" parent="SmoothProgressBar">
<item name="spb_stroke_separator_length">4dp</item> //线条之间的间隔
<item name="spb_sections_count">4</item> //屏幕中的线条数量
<item name="spb_speed">1.1</item> //Bar的行进速度
<item name="spb_interpolator">spb_interpolator_linear</item> //Bar的行进动画
<item name="spb_colors">@array/gplus_colors</item> //Bar的颜色数组
</style>
然后在对应的Layout文件中使用:
<fr.castorflex.android.smoothprogressbar.SmoothProgressBar
android:id="@+id/record_progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="3dp"
android:maxHeight="3dp"
android:indeterminate="true"
style="@style/GPlusProgressBar"/>
在Activity中进行如下使用:
SmoothProgressBar mProgressBar = (SmoothProgressBar)findViewById(R.id.record_progress_bar);
ProgressBar.progressiveStart();
这样就可以在工程中使用SmoothProgressBar。
工程下载路径:SmoothProgressBar_Master
GitHub原工程路径:SmoothProgressBar