wjc
2024-12-10 3ccff7173fb73322f7785d8eaedc90a1b5d8765d
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
128
129
 
package com.hdl.photovoltaic.widget;
 
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
 
import androidx.annotation.NonNull;
 
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.BaseDialog;
import com.hdl.photovoltaic.databinding.DialogFlashingIconBoxBinding;
 
import java.util.Timer;
import java.util.TimerTask;
 
/**
 * 自定义自动关闭dialog
 */
public class FlashingIconBoxDialog extends BaseDialog {
 
    private DialogFlashingIconBoxBinding viewBinding;
 
    private Drawable mDrawable;
    private String mContentStr;
 
    private boolean mIsShow = true;
 
    //默认1500毫秒
    private int mMillisecond = 1500;
 
    public FlashingIconBoxDialog(@NonNull Context context) {
        super(context, R.style.Custom_Dialog);
    }
 
    /**
     * @param context     上下文
     * @param millisecond 设置延时时间关闭弹窗(单位ms)
     */
    public FlashingIconBoxDialog(@NonNull Context context, int millisecond) {
        this(context);
        this.mMillisecond = millisecond;
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        viewBinding = DialogFlashingIconBoxBinding.inflate(getLayoutInflater());
        setContentView(viewBinding.getRoot());
        if (mIsShow) {
            viewBinding.tipImageTv.setVisibility(View.VISIBLE);
        } else {
            viewBinding.tipImageTv.setVisibility(View.GONE);
        }
        if (this.mDrawable != null) {
            viewBinding.tipImageTv.setBackground(this.mDrawable);
        }
        if (!TextUtils.isEmpty(this.mContentStr)) {
            viewBinding.tipContentTv.setText(this.mContentStr);
        }
        flashing();
    }
 
    /**
     * 设置图标
     *
     * @param drawable 成功或者失败图标
     */
    public void setImage(Drawable drawable) {
        this.mDrawable = drawable;
        if (viewBinding != null && this.mDrawable != null) {
            viewBinding.tipImageTv.setBackground(drawable);
        }
    }
 
    /**
     * 设置图标是否显示
     *
     * @param isShow (true=图标,否则不显示)
     */
    public void isShowImage(boolean isShow) {
        this.mIsShow = isShow;
        if (isShow) {
            viewBinding.tipImageTv.setVisibility(View.VISIBLE);
        } else {
            viewBinding.tipImageTv.setVisibility(View.GONE);
        }
    }
 
    /**
     * 设置提示文本
     *
     * @param content 文本
     */
    public void setContent(String content) {
        this.mContentStr = content;
        if (viewBinding != null && !TextUtils.isEmpty(content)) {
            viewBinding.tipContentTv.setText(content);
        }
    }
 
    /**
     * 设置延时时间关闭弹窗
     *
     * @param millisecond 时间(单位ms)
     */
    public void setDelayTime(int millisecond) {
        this.mMillisecond = millisecond;
    }
 
    /**
     * 三秒后自动关闭dialog
     */
    private void flashing() {
        //三秒后自动关闭dialog
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                timer.cancel();
                dismiss();
            }
        }, this.mMillisecond);
 
    }
 
 
}