猎豹"快切App"中用到的Android开发技巧探索[附源码]

本文介绍了Android开发者在实现类似猎豹快切的悬浮窗小工具"Well Swipe"(Well 划划)时遇到的技术挑战和解决方案,包括块切的触发、手势控制、旋转逻辑、循环展示、拖动排序、过渡动画以及自定义控件交互等。作者分享了详细的开发经验,并提供了源码供读者参考。
摘要由CSDN通过智能技术生成

本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发

原文链接:http://blog.csdn.net/u013045971/article/details/52119117

前景提要:

        什么是块切?

        快切是从猎豹的Clear Master中分离出来的一个悬浮窗小工具。因为对这个比较感兴趣,博主断断续续花了2个月时间完成了一个类似块切的版本,起了个名字叫“Well Swipe”,中文名叫“Well 划划”。本文会针对Well 划划开发中遇到的一些坑和和技巧做一个分享。来给大家揭密块切开发过程中用到的自定义控件技术细节。在这里还有一个叫“单手划划”的app不得不说,也做的很好。

       块切长啥样子?

       酷安下载地址:http://www.coolapk.com/apk/com.well.swipe

       效果图:http://blog.csdn.net/u013045971/article/details/50217903

       Well 划划的gif效果图:https://github.com/gumingwei/WellSwipe/blob/master/app/wellswipe5.gif


问题:

  1. 如何触发菜单
  2. 如何通过手势控制菜单的旋转,打开,关闭
  3. 旋转的过程中如何做到item循环展示
  4. 拖动item效果
  5. 拖动item时的排序效果
  6. item的过渡动画(删除一个item之后,剩余的item会自动平移到目标位置。拖动排序时item自动平移到排序之后的位置)
  7. 控件之间如何交互(旋转菜单的时候指示器跟着转,拖动的时候角落菜单变化状态,拖动到垃圾箱)
  8. 重写的onItemClick,onItemLongClick事件
        带着上述问题开始我们对Well 划划的探索之旅。

1.如何触发菜单
        在设备处于桌面或者其他app的情况下,从屏幕地步往外划来触发菜单。这个真没有别的办法,只能用WindowManager。因为你第三方app不可能拿到桌面或者任何其他app的事件来触发你自己的app。我的做法是在屏幕地步画了6个矩形。一边3个,拼接出来两个L型的区域,不多不少刚刚够用,再在设置里加上调整大小的自定义功能。块切单手划划都是这么搞的。

2.如何通过手势控制菜单的旋转,打开,关闭

        打开:打开这个手势在底部L型的触发区域进行。设计的时候分左右。所以写的时候也要分左右,当手指划过一定距离之后就开始打开菜单,手指这个时候还没停,手指继续滑动的时候计算一个0-1的值用来控制菜单从小到大展开的效果。我设计了这样的一个接口,把需要的scale值回传到菜单view来使用

/**
 * Created by mingwei on 3/12/16.
 *
 *
 * 微博:     明伟小学生(http://weibo.com/u/2382477985)
 * Github:   https://github.com/gumingwei
 * CSDN:     http://blog.csdn.net/u013045971
 * QQ&WX:   721881283
 *
 *
 */
public interface OnScaleChangeListener {

    /**
     * 当scale发生变化的时候回传这个值
     * <p/>
     * 1.用于在手指拖动时:                       CatchView.OnEdgeSlidingListener
     * 2.松开手指时自动打开和关闭的过程中:         AngleLayout.OnOffL
评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值