Android悬浮窗口的实现
来源:互联网 发布:数据采集系统搭建 编辑:程序博客网 时间:2024/05/18 00:14
最近在做一个流量统计的,有个悬浮窗会像样点。所以稍微研究了下悬浮窗口的实现:效果图如下:做了个透明背景。。。
- 悬浮窗口需要在主界面出现,就算APP被关闭了,因此悬浮窗口应该用一个service来控制;
- 既然悬浮窗口高于其他应用显示在手机上,那控制悬浮窗口的应该是系统类,其中WindowManger为悬浮窗口主要实现类;
WindowManager:窗口管理器,往窗口上添加和删除一个控件,主要有一下步骤:
(1)首先获取WindowManager对象,
WindowManager mWindowManager= getApplication().getSystemService(getApplication().WINDOW_SERVICE);
(2)设置悬浮控件的样式,WindowManager对象,对于控件的样式有专门的类进行封装:WindowManager.LayoutParams,
重要的属性和方法:
LayoutParams.x 设置控件默认在屏幕的x轴
LayoutParams.y 设置控件默认在屏幕的y轴
LayoutParams.gravity 设置控件在屏幕的gravity
LayoutParams.format 设置控件在屏幕
LayoutParams.width 设置控件的宽度
……详细请参考API文档
如下:
//获取param对象 WindowManager.LayoutParam wmParams=new WindowManager.LayoutParams(); //调整悬浮窗显示的停靠位置为左侧置顶 wmParams.gravity = Gravity.LEFT | Gravity.TOP; // 以屏幕左上角为原点,设置x、y初始值 wmParams.x = 0; wmParams.y = 0; //设置悬浮窗口长宽数据 wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
3、将自定义的view和上面定义的wmParams样式添加到窗口中,作为悬浮窗
LayoutInflater inflater = LayoutInflater.from(getApplication()); //获取浮动窗口视图所在布局 LinearLayout mFloatLayout = (LinearLayout) inflater.inflate(R.layout.flow_window, null); //添加mFloatLayout mWindowManager.addView(mFloatLayout, wmParams);4、移除该悬浮窗
mWindowManager.removeViewImmediate (View view)
“`
自此,可以轻松将一个控件悬浮在手机上,该悬浮窗口会高于一切,无论在任何界面它都会出现,无法比较“智能化”,即只有在手机主界面(一级界面)才显示,其他时候不显示,要怎么做?
思路是:由于我是用悬浮来做手机流量的更新,因此只要更新的时候,我判断一下现在手机显示的界面是否为主界面,如果不是,我就隐藏起来,就可以了。
1 0
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现 .
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- Android 悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- android悬浮窗口的实现
- MySQL中的视图操作
- Spring + Struts2 + Hibernate整合
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- 自定义卡劵之——CardVoucherView
- 1176
- Android悬浮窗口的实现
- 安卓开发中Theme.AppCompat.Light的解决方法
- SSL的单向认证和双向认证
- U 盘全新安装 Mac OS X 提示【这个“安装 OS X ……”应用程序副本不能验证】的解决方法
- 映射消息
- _stdcall,_cdecl
- 依赖倒置原则
- 全局异常捕获
- Android官方MVP架构解读