ArcMenu弧形菜单Kotlin实现
弧形展开的 Android 菜单交互,视觉冲击力还蛮强的。ArcMenu就是这么一个挺有意思的控件,用 Kotlin 写起来也不复杂,适合想给 UI 加点料的你。
ArcMenu 的核心是中间一个主按钮,点一下就能把几个子菜单沿着一个弧线弹出来,动态效果挺顺的,响应也快。整个结构靠一个中心控件+多个子控件拼出来。
布局部分你可以直接在res/layout
里搞一个ArcMenu
的容器,里面放中心按钮和菜单项,推荐用ImageView
配上ObjectAnimator
,写起来比较清爽。
动画怎么整?其实思路就一个:给每个菜单项算出角度,用translationX
和translationY
控制它走哪,配上ValueAnimator
做展开/收起的效果,逻辑不复杂。
交互方面,点击事件记得加好,可以直接用setOnClickListener
,也能配个GestureDetector
,用户体验上会更丝滑。收起时别忘了触摸穿透的问题,防误触还是挺重要的。
如果你想让菜单更好看点,菜单项可以自定义,加图标、加文字都没问题,写个自定义 View 就能搞定了。
强烈建议把ArcMenu
封成组件,弄个自定义 View 或者 Fragment,想复用就直接引,项目里用起来省心多了。源码里也有不少写好的类和动画资源,可以直接借鉴。
想看看类似布局实现,可以翻一下拖动布局这篇,也挺有参考价值。
如果你想做一个带动效、又不占空间的菜单,ArcMenu会是一个比较实用的选择。
Android-ArcMenu弧形菜单kotlin实现.zip
预估大小:47个文件
ArcMenu-master
文件夹
gradlew
5KB
build.gradle.kts
476B
arcmenu.gif
712KB
gradle
文件夹
wrapper
文件夹
gradle-wrapper.properties
230B
gradle-wrapper.jar
53KB
README.md
366B
gradlew.bat
2KB
...
746.17KB
文件大小:
评论区