主体
public class ProgressBarDialog extends Dialog {
public ProgressBarDialog(Context context) {
super(context);
}
publicProgressBarDialog(@NonNull Context context, int dia_loading) {
super(context, dia_loading);
}
public static class Builder {
private Context context;
private boolean isCancelable = false;
private boolean isCancelOutside = false;
private String message;
public Builder(Context context) {
this.context = context;
}
//屏蔽返回键
public Builder setCancelable(boolean isCancelable) {
this.isCancelable = isCancelable;
return this;
}
//点击dialog以外的屏幕是否消失
public Builder setCancelOutside(boolean isCancelOutside) {
this.isCancelOutside = isCancelOutside;
return this;
}
//设置文本
public Builder setMessage(String message) {
this.message = message;
return this;
}
public ZKProgressBarDialog create() {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.dialog_progress_bar, null);
TextView msgText = (TextView) view.findViewById(R.id.tipTextView);
ProgressBarDialog loadingDailog = new ProgressBarDialog(context, R.style.dia_loading);
loadingDailog.setContentView(view);
msgText.setText(message);
loadingDailog.setCancelable(isCancelable);
loadingDailog.setCanceledOnTouchOutside(isCancelOutside);
return loadingDailog;
}
}
dialog的控件
<ProgressBar
android:id="@+id/LoadBar"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_gravity="center_horizontal"
android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/dialog_loading"
android:indeterminateOnly="true"
android:layout_marginTop="30dp"/>
drawable/dialog_loading
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/loading"
android:pivotX="50%"
android:pivotY="50%" />
半透明背景
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#80000000"/>
<corners android:radius="@dimen/zk_core_wait_radius"/>
</shape>