WindowManager实现悬浮可拖动效果

现在360手机卫士有个流量统计的效果,开启流量统计后,在桌面上会出现一个显示流量的窗体,在任何界面都可以自由拖动。

模仿这个功能,做了一个统计手机信号强度的Demo, 界面效果如下:

WindowManager实现悬浮可拖动效果_第1张图片WindowManager实现悬浮可拖动效果_第2张图片

从上面的截图可以看出,当开启手机信号悬浮框后,默认在右上角会出现一个小窗体(一个图标加上一个信号强度),这个窗体附在锁屏上(默认最上面的一层是锁屏界面),可以随意拖动。

界面布局什么的,在这里就不说了。这个小窗体实际是一个Service,一直在后台运行。

创建窗体的核心代码如下:

WindowManager实现悬浮可拖动效果_第3张图片

需要注意的地方都已经加了注释,特别要注意那几个type,有的type可以让窗体只在某个应用界面上显示,锁屏界面不显示等等,ERROR的级别是最高的,表示可以在任何界面都可以显示窗体。接下来就是实现拖动的效果,代码如下:

WindowManager实现悬浮可拖动效果_第4张图片

基本上核心代码都已经附上了,大多数都是原生API就可以实现,具体细节可以根据具体情况来调试。

你可能感兴趣的:(WindowManager实现悬浮可拖动效果)