半透明dialog 自定义的 用于防沉迷提示

//java文件 计时 显示一分钟 一分钟后消失 显示的时候可点击别的事件
//不抢占Activity焦点:
// dialog不去抢占焦点
这个是实现 dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

//点击屏幕dialog不消失
dialog.setCanceledOnTouchOutside(false);
//计时1分钟 1000:一秒 10000:10秒
cdt = new CountDownTimer(60000,1000) {//前面那个参数总数几秒 后面是每次几秒
@Override
public void onTick(long millisUntilFinished) {

                }
                @Override
                public void onFinish() {
                    dialog.dismiss();
                }

用悬浮窗实现PopupWindow dialog有可能出现切屏出去回来后黑屏现象 这个不会
private static void setPopupWindow() {
CountDownTimer timer;
View view = LayoutInflater.from(activity).inflate(R.layout.dialog, null, false);
final PopupWindow popWindow = new PopupWindow(view,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
popWindow.setOutsideTouchable(false); // 设置popupwindow外部可点击
popWindow.setFocusable(false); // 获取焦点
timer = new CountDownTimer(60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
popWindow.dismiss();
}
};
timer.start();
//要为popWindow设置一个背景才有效
popWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));
popWindow.showAtLocation(activity.getWindow().getDecorView(), Gravity.TOP, 0, 0);
}

            };

// 倒计时器,用来设置动画显示时间
CountDownTimer cdt;
final Dialog dialog = new Dialog(MainActivity.this,R.style.transcutestyle);
dialog.setContentView(R.layout.dialog);
Window window = dialog.getWindow();
window.setGravity(Gravity.TOP);
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
cdt = new CountDownTimer(60000,1000) {
@Override
public void onTick(long millisUntilFinished) {

                }
                @Override
                public void onFinish() {
                    dialog.dismiss();
                }
            };
            cdt.start();

//布局

<TextView
    android:textColor="#ffffff"
    android:background="#80000000"
    android:paddingBottom="20dp"
    android:paddingTop="20dp"
    android:paddingRight="10dp"
    android:paddingLeft="10dp"
    android:text="由于您是未成年人,您将被纳入防沉迷系统。您的每日累计在线时长为1.5小时,每日22时至次日8时无法登陆游戏,法定假日与工作日限定一致"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:ignore="MissingConstraints" />

在res-> values -> styles 下创建一个这个

原文地址:https://www.cnblogs.com/wang-jingyuan/p/12769029.html