wjc
2025-03-04 e5ca9f9fb28d65a71dc14c19e87098c62141419e
app/src/main/java/com/hdl/photovoltaic/widget/FlashingBoxDialog.java
@@ -1,6 +1,6 @@
package com.hdl.photovoltaic.widget;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -9,6 +9,7 @@
import androidx.annotation.NonNull;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.BaseDialog;
import com.hdl.photovoltaic.databinding.DialogFlashingBoxBinding;
import java.util.Timer;
@@ -17,15 +18,27 @@
/**
 * 自定义自动关闭dialog
 */
public class FlashingBoxDialog extends Dialog {
public class FlashingBoxDialog extends BaseDialog {
    private DialogFlashingBoxBinding viewBinding;
    private Drawable mDrawable;
    private String mContentStr;
    //默认1500毫秒
    private int mMillisecond = 1500;
    public FlashingBoxDialog(@NonNull Context context) {
        super(context, R.style.Custom_Dialog);
        super(context, R.style.Custom_List_Dialog);
    }
    /**
     * @param context     上下文
     * @param millisecond 设置延时时间关闭弹窗(单位ms)
     */
    public FlashingBoxDialog(@NonNull Context context, int millisecond) {
        this(context);
        this.mMillisecond = millisecond;
    }
    @Override
@@ -33,26 +46,13 @@
        super.onCreate(savedInstanceState);
        viewBinding = DialogFlashingBoxBinding.inflate(getLayoutInflater());
        setContentView(viewBinding.getRoot());
        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);
        }
    }
    /**
     * 设置提示文本
@@ -67,6 +67,15 @@
    }
    /**
     * 设置延时时间关闭弹窗
     *
     * @param millisecond 时间(单位ms)
     */
    public void setDelayTime(int millisecond) {
        this.mMillisecond = millisecond;
    }
    /**
     * 三秒后自动关闭dialog
     */
    private void flashing() {
@@ -77,10 +86,9 @@
                timer.cancel();
                dismiss();
            }
        }, 3000);
        }, this.mMillisecond);
    }
}