Android中可自由移动悬浮窗口的Demo

    xiaoxiao2021-12-14  17

    Android中可自由移动悬浮窗口的Demo

    标签: android文档工作 1154人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: Android开发(1715) 作者同类文章 X  

    前段时间捣鼓出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的具体意义,给出可读性好点的语句。

    如下:

    [java] view plain copy print ? wmParams.<span style="color:#006633;">type</span><span style="color:#339933;">=</span>LayoutParams.<span style="color:#006633;">TYPE_PHONE</span><span style="color:#339933;">;</span>   <span style="color:#666666;FONT-STYLE: italic">//wmParams.format=PixelFormat.RGBA_8888;   //设置图片格式,效果为背景透明</span>  wmParams.<span style="color:#006633;">flags</span><span style="color:#339933;">=</span>LayoutParams.<span style="color:#006633;">FLAG_NOT_TOUCH_MODAL</span>                        <span style="color:#339933;">|</span> LayoutParams.<span style="color:#006633;">FLAG_NOT_FOCUSABLE</span><span style="color:#339933;">;</span>  <span style="color:#666666;FONT-STYLE: italic">/*  * 下面的flags属性的效果形同“锁定”。  * 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。  wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL                         | LayoutParams.FLAG_NOT_FOCUSABLE                        | LayoutParams.FLAG_NOT_TOUCHABLE; */</span>   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; */ 顶 1 踩 0     上一篇Android中悬浮窗口的实现原理和示例代码下一篇Android 内存溢出问题分析。

    我的同类文章

    Android开发(1715) http://blog.csdn.net •Android MeasureSpec介绍及使用2016-12-01阅读53•RxJava中的不好理解的点-join、Debounce or Sample操作符2016-11-13阅读258•再说Android RecyclerView局部刷新那个坑2016-11-25阅读1044•Android Matrix的用法总结2016-10-05阅读832•RxJava2 vs RxJava12016-10-01阅读667•Android 使用Circular Reveal为你的应用添加揭露动画效果2016-09-29阅读664 •RxJava连接操作符2016-11-27阅读158•Android用RxJava combineLatest操作符处理复杂表单验证问题2016-11-04阅读251•Android Matrix的代码验证和应用2016-10-07阅读540•android 让某个EditText默认不获取焦点2016-10-04阅读386•RxJava 2.0中backpressure(背压)概念的理解2016-10-01阅读1258 更多文章
    转载请注明原文地址: https://ju.6miu.com/read-963484.html

    最新回复(0)