package com.yeshi.ec.rebate.myapplication.ui.dialog;
|
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.os.Bundle;
|
import android.view.View;
|
import android.view.animation.Animation;
|
import android.view.animation.AnimationUtils;
|
|
import com.wang.avi.AVLoadingIndicatorView;
|
import com.yeshi.ec.rebate.myapplication.R;
|
|
/**
|
* Created by weikou2015 on 2017/2/28.
|
*/
|
|
public class ShapeLoadingDialog extends Dialog {
|
private AVLoadingIndicatorView mLoadingView;
|
|
private Builder mBuilder;
|
|
private ShapeLoadingDialog(Builder builder) {
|
super(builder.mContext, R.style.custom_dialog);
|
mBuilder = builder;
|
setCancelable(mBuilder.mCancelable);
|
setCanceledOnTouchOutside(mBuilder.mCanceledOnTouchOutside);
|
}
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.layout_dialog);
|
|
mLoadingView = findViewById(R.id.avi);
|
Animation ani = AnimationUtils.loadAnimation(mLoadingView.getContext(), R.anim.touming); //申明一个动画
|
mLoadingView.setAnimation(ani);//为图片绑定动画
|
|
setOnDismissListener(new DialogInterface.OnDismissListener() {
|
@Override
|
public void onDismiss(DialogInterface dialog) {
|
mLoadingView.setVisibility(View.GONE);
|
}
|
});
|
}
|
|
@Override
|
public void show() {
|
super.show();
|
mLoadingView.setVisibility(View.VISIBLE);
|
}
|
|
public Builder getBuilder() {
|
return mBuilder;
|
}
|
|
public static class Builder {
|
|
private Context mContext;
|
|
private int mDelay = 80;
|
|
private CharSequence mLoadText;
|
|
private boolean mCancelable = true;
|
|
private boolean mCanceledOnTouchOutside = true;
|
|
public Builder(Context context) {
|
mContext = context;
|
}
|
|
public Builder delay(int delay) {
|
mDelay = delay;
|
return this;
|
}
|
|
public Builder loadText(CharSequence loadText) {
|
mLoadText = loadText;
|
return this;
|
}
|
|
public Builder loadText(int resId) {
|
mLoadText = mContext.getString(resId);
|
return this;
|
}
|
|
public Builder cancelable(boolean cancelable) {
|
mCancelable = cancelable;
|
mCanceledOnTouchOutside = cancelable;
|
return this;
|
}
|
|
public Builder canceledOnTouchOutside(boolean canceledOnTouchOutside) {
|
mCanceledOnTouchOutside = canceledOnTouchOutside;
|
return this;
|
}
|
|
public ShapeLoadingDialog build() {
|
return new ShapeLoadingDialog(this);
|
}
|
|
// public ShapeLoadingDialog show(){
|
// ShapeLoadingDialog dialog = build();
|
// dialog.show();
|
// return dialog;
|
// }
|
}
|
}
|