Android WindowManager简析

悬浮窗口相信开发android的猩猩们都遇到过或者实现过,简单的说明原理就是获取WindowManager对象,通过该对象的addView和removeView来向一个页面添加一个悬浮框和删除该悬浮框,其实用WindowManger这个可以实现好多小功能:
1)比如在TV端开发的过程中如果某一页面有分页显示数据的话,当用户按遥控器数字键翻页的时候在页面中动态添加一个View来显示用户输入的数字。
2)可以在MediaPlayer全屏播放的时候在某个时机动态添加一个View来展示相关内容。
3)一些手机管理软件也用悬浮框实现来部署一些快捷功能
实现上述功能有两种思路或者方法来实现:
1) 通过(WindowManager)getSystemService(Context.WINDOW_SERVICE);来获取WindowManger对象,调用addView来添加悬浮框,在用addView添加View的时候需要设置该LayoutParams来控制View的大小或者显示位置。
2)在获取WindowManger的同时,在通过反射机制调用makeNewWindow来生成一个Window里面。我们知道Activity都封装了一个Window对象(PhoneWindow),在Activity里面调用setContentView的时候实际上是调用Window对象的setContentView方法。那么我们完全也可以用此种方法来实现:
通过反射机制来获取Window对象的方法如下:


		try { 
			@SuppressWarnings("rawtypes")
			Class policyManagerClass = Class.forName("com.android.internal.policy.PolicyManager"); 
			@SuppressWarnings(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭梧悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值