LoadingDialog.java
3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package com.chudiangameplay.android.dialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StyleRes;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.AnimUtil;
import com.chudiangameplay.android.util.StatusBarUtil_Dialog;
/**
* Created by Administrator on 2018/8/29.
*/
public class LoadingDialog extends Dialog implements View.OnClickListener {
public LoadingDialog(@NonNull Context context) {
super(context);
}
public LoadingDialog(@NonNull Context context, String text) {
super(context, R.style.myDialog);
this.text = text;
}
public LoadingDialog(@NonNull Context context, @StyleRes int themeResId) {
super(context, themeResId);
}
protected LoadingDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
LinearLayout ll_content;
View view_bg;
TextView tv_text;
CommCallBack callBack;
String text;
ImageView iv_img;
AnimationDrawable voiceAnimation;
//设置输入回调
public void setIntputCallBack(CommCallBack callBack) {
this.callBack = callBack;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_commloading);
initView();
}
private void initView() {
ll_content = (LinearLayout) findViewById(R.id.ll_content);
view_bg = findViewById(R.id.view_bg);
tv_text = findViewById(R.id.tv_text);
if(!TextUtils.isEmpty(text))
tv_text.setText(text);
view_bg.setOnClickListener(this);
ll_content.setOnClickListener(this);
AnimUtil.fadeIn(view_bg);
AnimUtil.fadeIn(ll_content);
iv_img = findViewById(R.id.iv_img);
voiceAnimation = (AnimationDrawable) iv_img.getDrawable();
if (voiceAnimation != null && !voiceAnimation.isRunning())
voiceAnimation.start();
StatusBarUtil_Dialog.setImmersiveStatusBar(this, true);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.view_bg:
// dismissWithAnim();
break;
case R.id.ll_content:
//不处理,只消耗点击事件
break;
case R.id.tv_cancel:
dismissWithAnim();
break;
}
}
@Override
public void setOnDismissListener(@Nullable OnDismissListener listener) {
super.setOnDismissListener(listener);
if (voiceAnimation != null) {
voiceAnimation.stop();
voiceAnimation = null;
}
}
public void dismissWithAnim() {
if (view_bg.getAnimation() != null) return;
AnimUtil.fadeOut(ll_content, null);
AnimUtil.fadeOut(view_bg, new CommCallBack() {
@Override
public void onResult(Object obj) {
dismiss();
}
});
}
@Override
public void onBackPressed() {
dismissWithAnim();
}
}