您当前的位置: 首页 >  android

郭梧悠

暂无认证

  • 1浏览

    0关注

    402博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android WindowManager简析

郭梧悠 发布时间:2015-12-02 19:10:52 ,浏览量:1

悬浮窗口相信开发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(
关注
打赏
1663674776
查看更多评论
立即登录/注册

微信扫码登录

0.0396s