Android中可自由移动悬浮窗口的Demo
2011-07-11 17:08
281 查看
前段时间捣鼓出Android悬浮窗口的实现,今天抽空写了一个可自由移动悬浮窗口的Demo。
简要说明如下:
1、通过覆写悬浮View中onTouchEvent方法实现自由移动悬浮窗口。
2、悬浮窗口坐标的移动实际是windowMananager.LayoutParams中x和y的变换,但是要注意设置相应的gravity。
3、用windowManager创建的View,当不需要时,务必记住使用windowManager的removeView方法来移除,请在Activity相关生命周期中自行添加扫尾工作。
4、代码中已经附上详细注释。有关参数具体含义,请自行参考SDK。
Demo源码下载地址===============================
注意Demo中wmParams.format=1的属性(我源码中打了双斜杠),如果启用,图片背景将会透明,效果图如下:
================================
一些说明:
对于种种原因没有查看SDK文档的一些朋友,可能对我源码中wmParams.type=2002这样的语句不太了解其2002的具体意义,给出可读性好点的语句。
如下:
简要说明如下:
1、通过覆写悬浮View中onTouchEvent方法实现自由移动悬浮窗口。
2、悬浮窗口坐标的移动实际是windowMananager.LayoutParams中x和y的变换,但是要注意设置相应的gravity。
3、用windowManager创建的View,当不需要时,务必记住使用windowManager的removeView方法来移除,请在Activity相关生命周期中自行添加扫尾工作。
4、代码中已经附上详细注释。有关参数具体含义,请自行参考SDK。
Demo源码下载地址===============================
注意Demo中wmParams.format=1的属性(我源码中打了双斜杠),如果启用,图片背景将会透明,效果图如下:
================================
一些说明:
对于种种原因没有查看SDK文档的一些朋友,可能对我源码中wmParams.type=2002这样的语句不太了解其2002的具体意义,给出可读性好点的语句。
如下:
wmParams.type=LayoutParams.TYPE_PHONE; //wmParams.format=PixelFormat.RGBA_8888; //设置图片格式,效果为背景透明 wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE; /* * 下面的flags属性的效果形同“锁定”。 * 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。 wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE; */
相关文章推荐
- Android中可自由移动悬浮窗口的Demo
- Android中可自由移动悬浮窗口的Demo
- Android中可自由移动悬浮窗口的实现
- Android中可自由移动悬浮窗口的实现
- Android中可自由移动悬浮窗口的实现
- Android中可自由移动悬浮窗口的实现
- Android中可自由移动悬浮窗口的实现
- Android Window 二 可移动悬浮窗口 WindowManager
- Android Window 二 可移动悬浮窗口 WindowManager
- Android Window 二 可移动悬浮窗口 WindowManager
- Android 为应用增加可移动的悬浮窗口
- Android 为应用增加可移动的悬浮窗口
- android实现 桌面移动悬浮窗口实现
- Android中可移动悬浮窗口 WindowManager详解
- WindowManager实现悬浮窗口&可自由移动的悬浮窗口
- Android Window 二 可移动悬浮窗口 WindowManager
- WindowManager实现悬浮窗口&可自由移动的悬浮窗口
- WindowManager实现悬浮窗口&可自由移动的悬浮窗口
- WindowManager实现悬浮窗口&可自由移动的悬浮窗口
- android实现可自由移动、监听点击事件的悬浮窗