资源下载地址:https://download.csdn.net/download/sheziqiong/85796297
资源下载地址:https://download.csdn.net/download/sheziqiong/85796297
前言
去年用了一整年的 MX4Pro,魅族留给我最大的印象就是悬浮球了(质量问题我就不说了),左右滑动切换应用、上拉返回桌面、下拉打开通知栏、轻触返回…,一切都那么丝滑。然而自从上半年换成了 s7dege,我感觉怎么也习惯不了没有悬浮球的生活了。
三星自己也有一个类似于悬浮球的功能,不过太过复杂,不易用,悬浮球本来就该是一个一步操作的产品,看来三星在软件设计方面还是任重而道远。于是乎我便在各大应用市场上找悬浮球,把所有排名靠前的悬浮球应用都安装试了一下,最后终于让我找到了一款几乎和 flyme 悬浮球相仿的 app。
然后我就必须到设置页面,花半天找到悬浮球,关掉它的“可出现在顶部的应用程”权限,然后才能回到 app,授予权限。最后,我还得再次跑到设置页面,再花半天找到悬浮球,打开它的“可出现在顶部的应用程”权限。朋友啊朋友,这种体验,一次就够了,然而硬是让我体验了 N 次啊!
然而有什么能难得倒程序员的呢好这个周末在家无事,我决定按照自己的习惯,打造一个心目中最易用的悬浮球。
设计
1.UI
UI 很简单,直接用 sketch 切了三个圆,一个是作为背景的灰色半透明的圆,一个是中心的小圆,另外还有一个默认隐藏的大圆。
2.功能
因为自己的操作习惯是固定的,所以也就不需要给悬浮球添加自定义操作的功能了,直接将操作对应的功能写死即可。
(1)单击:返回
(2)长按:移动悬浮球
(3)左滑右滑:打开最近应用程序
(4)上拉:返回桌面
(5)下拉:
这块我最先开始定义的很简单,就是下拉通知栏,但是经过一天的使用,我又给它加了一个功能,就是保持下拉状态 1.5 秒,将移除悬浮球。这样你便可以很简单的移除掉悬浮球了。
实现
1.如何添加悬浮球到桌面
这里首先要感谢郭霖大神的 《 Android 桌面悬浮窗效果实现,仿 360 手机卫士悬浮窗效果》,这部分我参考了这篇文章,成功的将悬浮球添加到了桌面。
2.手势判断
这是最重要的部分了,承担着悬浮球的主要功能。
(1)手指按下时
按下时,隐藏小球,展现大球,并记录按下位置和按下时间。
代码最后的 postDealy 时干嘛使的呢是通过延迟 300 毫秒,判断是否是长按模式。如果目前还没有处于其他模式,则可判断为长按,并震动提醒。
(2)手指移动时
这时要判断是否是处于长按状态,如果是,那么进入 MOVE 模式,移动悬浮球,如果不是,则判断操作手势,即下拉还是上拉等其他手势。
进行手势操作的代码如下,主要是根据当前坐标与按下时记录的坐标进行计算,判断手势,并更新大球位置。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!