项目地址:https://github.com/oguzbilgener/CircularFloatingActionMenu
项目截图:
项目简介:
主要包括5个类
FloatingActionButton: 继承自FrameLayout,对应上图的 “+” 号图片,采用WindowManager 添加该 View,可悬浮在窗体中,因此类的名字前面有 Floating 字样。可以设置居中、左下、右上等等;
FloatingActionMenu: 自定义类,对应上面散列的四张小图之和,采用WindowsManager 添加该类,其监听了 FloatingActionButton 的点击事件,以打开或关闭menu;
SubActionButton: 继承自FrameLayout,上图中,每一个散列的小图都是一个SubActionButton实例,它是一个ViewGroup,可添加任意的container view。
DefaultAnimationHandler: 继承自MenuAnimationHandler,主要实现FloatingActionMenu的动画效果,其主要的两个方法是 animateMenuOpening() 和 animateMenuClosing(),且监听了动画的状态;
MenuAnimationHandler: 自定义动画抽象类,主要实现FloatingActionMenu的动画效果,监听了最后一个menu的动画状态。
用法:
参见 DemoActivity.java
首先,实例化FloatingActionButton
其次,实例化FloatingActionMenu
再次,监听FloatingActionMenu关闭和打开的状态
附修改后的效果图:制作gif太麻烦,贴一张打开和关闭的图,动画效果与上图一样
备注:因为采用WindowManager添加View,可以很方便地制作悬浮在桌面的悬浮窗