package com.hdl.photovoltaic.widget; import android.app.Dialog; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; 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; import java.util.TimerTask; /** * 自定义自动关闭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); } /** * @param context 上下文 * @param millisecond 设置延时时间关闭弹窗(单位ms) */ public FlashingBoxDialog(@NonNull Context context, int millisecond) { this(context); this.mMillisecond = millisecond; } @Override protected void onCreate(Bundle savedInstanceState) { 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); } } /** * 设置提示文本 * * @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); } }