androidSectorMenuView底部导航扇形菜单的实现代码-创新互联
这次分析一个扇形菜单展开的自定义View, 也是我实习期间做的一个印象比较深刻的自定义View, 前后切换了很多种实现思路, 先看看效果展示
成都创新互联是专业的紫阳网站建设公司,紫阳接单;提供网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行紫阳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!效果展示
效果分析
- 点击圆形的FloatActionBar, 自身旋转一定的角度
- 菜单像波纹一样扩散开来
- 显示我们添加的item
实现分析
使用adapter适配器去设置View, 用户可自定义性强, 不过每次使用需要去设置Adapter, 较为繁琐
直接调用ItemView, 将ImageView和TextView写死, 用户操作简单, 但是缺乏可定制性(利他)
本次功能实现采用了方案 2
实现步骤
- 与气泡拖拽类似, 新开启一个Window进行自定义View的绘制
- 初始化时调用setWillNotDraw(false)方法, 强行启动ViewGroup的绘制
- onMeasure中将宽高写死
- 绘制背景
- 锚点为View的底部中心点
- 半径为屏幕宽度一半的平方和的开方(注意这里不是屏幕的一半)
- 添加itemView, 在onLayout中去确定其位置
- 添加动画效果
- 将相关接口暴露给外界
使用方式
BottomSectorMenuView.Converter(mFab) .setToggleDuration(500, 800) .setAnchorRotationAngle(135f) .addMenuItem(R.drawable.icon_camera, "拍照") { Toast.makeText(this@MainActivity, "拍照", Toast.LENGTH_SHORT).show() } .addMenuItem(R.drawable.icon_photo, "图片") { Toast.makeText(this@MainActivity, "图片", Toast.LENGTH_SHORT).show() } .addMenuItem(R.drawable.icon_text, "文字") { Toast.makeText(this@MainActivity, "文字", Toast.LENGTH_SHORT).show() } .addMenuItem(R.drawable.icon_video, "视频") { Toast.makeText(this@MainActivity, "视频", Toast.LENGTH_SHORT).show() } .addMenuItem(R.drawable.icon_camera_shooting, "摄像") { Toast.makeText(this@MainActivity, "摄像", Toast.LENGTH_SHORT).show() } .apply()
网页题目:androidSectorMenuView底部导航扇形菜单的实现代码-创新互联
链接地址:http://ybzwz.com/article/cdpcpg.html