SpecialProgressBar
简介:一个炫酷的进度条效果实现
A Special Progress Bar for Android
创意来自Dribbble
Preview
Usage xml
<com.mrzk.specialprolibrary.SpecialProgressBarView
android:id="@+id/ls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
app:startDrawable="@drawable/ic_file_upload_white_36dp"
app:endSuccessDrawable="@drawable/ic_done_white_36dp"
app:textSize="12sp"
app:textColorSuccess="#66A269"
app:textColorNormal="#491C14"
app:textColorError="#BC5246"
app:progressBarHeight="4dp"
app:progressBarBgColor="#491C14"
app:progressBarColor="#ffffff"
app:canReBackable="true"
app:canDragable="false"
/>
java
ls = (SpecialProgressBarView) findViewById(R.id.ls);
ls.setEndSuccessBackgroundColor(Color.parseColor("#66A269"))//设置进度完成时背景颜色
.setEndSuccessDrawable(R.drawable.ic_done_white_36dp,null)//设置进度完成时背景图片
.setCanEndSuccessClickable(false)//设置进度完成后是否可以再次点击开始
.setProgressBarColor(Color.WHITE)//进度条颜色
.setCanDragChangeProgress(false)//是否进度条是否可以拖拽
.setCanReBack(true)//是否在进度成功后返回初始状态
.setProgressBarBgColor(Color.parseColor("#491C14"))//进度条背景颜色
.setProgressBarHeight(ls.dip2px(this,4))//进度条宽度
.setTextSize(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12, getResources().getDisplayMetrics()))//设置字体大小
.setStartDrawable(R.drawable.ic_file_upload_white_36dp,null)//设置开始时背景图片
.setTextColorSuccess(Color.parseColor("#66A269"))//设置成功时字体颜色
.setTextColorNormal(Color.parseColor("#491C14"))//设置默认字体颜色
.setTextColorError(Color.parseColor("#BC5246"));//设置错误时字体颜色
ls.beginStarting();//启动开始开始动画
ls.setError();//进度失败 发生错误
ls.setOnAnimationEndListener(new SpecialProgressBarView.AnimationEndListener() {
@Override
public void onAnimationEnd() {
ls.setMax(187);
ls.setProgress(num);//初次进入在动画结束时设置进度
}
});
ls.setOntextChangeListener(new SpecialProgressBarView.OntextChangeListener() {
@Override
public String onProgressTextChange(SpecialProgressBarView specialProgressBarView, int max, int progress) {
return progress * 100 / max + "%";
}
@Override
public String onErrorTextChange(SpecialProgressBarView specialProgressBarView, int max, int progress) {
return "error";
}
@Override
public String onSuccessTextChange(SpecialProgressBarView specialProgressBarView, int max, int progress) {
return "done";
}
});