android system alter window实现系统提示框

原创 2016年08月30日 09:11:34

android 实现系统提示框

实际工作中,特别是定制设备和系统,经常会需要弹出些系统级别的提示框,如程序的后台升级下载,完成进度等等,在不影响其他程序的正常使用的同时进行有效的提示,提示级别为系统级别,也就是无论你退不退出程序都会在屏幕最外层界面显示提示框。

因此提示框的显示和逻辑最好写在service里面,使用system alter window需要添加权限:

<!--系统对话框权限-->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

添加提示框:

windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

mView = LayoutInflater.from(context).inflate(R.layout.window_manager_popwin, null);
titleView = (TextView)mView.findViewById(R.id.title);
progressView = (TextView)mView.findViewById(R.id.progress);

params = new WindowManager.LayoutParams();

// 类型
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;

// WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

// 设置flag

int flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
// 如果设置了WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,弹出的View收不到Back键的事件
params.flags = flags;
// 不设置这个弹出框的透明遮罩显示为黑色
params.format = PixelFormat.TRANSLUCENT;
// FLAG_NOT_TOUCH_MODAL不阻塞事件传递到后面的窗口
// 设置 FLAG_NOT_FOCUSABLE 悬浮窗口较小时,后面的应用图标由不可长按变为可长按
// 不设置这个flag的话,home页的划屏会有问题

params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;

/*params.width = mView.getWidth();
params.height = mView.getHeight();*/

params.gravity = Gravity.BOTTOM|Gravity.RIGHT;
params.x = 20;  //相当于margin设置
params.y = 20;
windowManager.addView(mView, params);

取消提示框只需:

if(mView!=null){
    windowManager.removeView(mView);
}

实际运行效果如下:



版权声明:

相关文章推荐

android 6.0之后 android.permission.SYSTEM_ALERT_WINDOW使用方法变动

在android6.0之前想要用service弹出对话框还蛮简单的,这是之前的方法但是改版之后因为安全的问题, android 系统觉得开发者要放这种功能需要使用者”认真”的同意,于是以后要使用弹出...

Android 在Service中弹出窗口及SYSTEM_ALERT_WINDOW权限解决方法

方案一、 1、在开发中有时会用到全局弹出对话框但必须在manifest中申请权限:带来的问题: 1. 用户在安装应用时会询问用户是否授权问题 2. 同时在小米手机上默认是禁止系统弹出框的,应用中的...

android 系统提示对话框(AlertDialog)的使用

在按键单击事件中添加创建对话框并设置相关属性。        dialogButton=(Button)findViewById(R.id.bt_hello); dialog...

Android弹出对话框--Alertdialog(系统自带的)

一. 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到...

android系统中常用的弹出提示框使用代码

首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现 new AlertDialog.Builder(self) .setTitle...

封装一个Win32弹出提示框的函数(用于Window控件 显示Tooltip)

原标题:封装一个Win32弹出提示框的函数(用于STATIC等控件显示Tooltip) HWND WINAPI CreateToolTip(HWND hwndOwner, LPCTSTR s...

window.createPopup()用法以及短消息提示框代码

一、在做一个portal项目时,用户要求在门户首页上的待办信息要有明确的提示,且在浏览器最小化的情况下,当有新的待办信息时,也要做提示。用了alert方法、或者用div的方法都很难实现“在浏览器最小化...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)