安卓实现窗口总在最前

安卓开发的时候如何实现窗口总在最前,就像360那种桌面浮窗一样?

或者有没有哪位大神用过而且了解按键精灵手机版那种界面,当开启的时候就会有一个窗口在右边悬浮的,然后任何程序下都能实现总在最前

请问这种是怎么实现的,或者有没有什么实现思路,谢谢。

阅读 10.8k
2 个回答

你不是自己都挂上 浮窗 的Tag了么....这随便百度Google都是大把的答案...

WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();  
WindowManager mWindowManager = (WindowManager)getApplication().getSystemService(getApplication().WINDOW_SERVICE);  
wmParams.type = LayoutParams.TYPE_PHONE;   
wmParams.format = PixelFormat.RGBA_8888;   
wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE;        
wmParams.gravity = Gravity.LEFT | Gravity.TOP;         
wmParams.x = 0;  
wmParams.y = 0;  
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;  
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;  
LayoutInflater inflater = LayoutInflater.from(getApplication());  
LinearLayout view = (LinearLayout) inflater.inflate(R.layout.your_悬浮窗, null);  
mWindowManager.addView(view, wmParams);  

核心就是个 WindowMananger...
使用 WindowMananger.LayoutParams.TYPE_PHONE模式时,就是 在任意界面中 总在最前
需要 android.permission.SYSTEM_ALERT_WINDOW 权限


当然是可以且测试过了...给你上截图

测试机器 Nexus5 Android 5.0.1

Demo工程地址: http://pan.baidu.com/s/1dDtjOYl

图片描述

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题