基于Material Design设计的环形菜单控件 - AnnularMenuView

2017-06-12      120      Android
项目简介

AnnularMenu是基于Material Design设计的环形菜单控件。

引入方式

在module的build.gradle中

com.dingmouren.annularmenu:annularmenu:1.0.2

怎么使用

1.布局文件

<com.dingmouren.annularmenu.AnnularMenu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:position="left_bottom" //菜单的位置
    app:radius="120dp"         //菜单的半径
    app:toggleDuration="500"   //菜单打开或者关闭的动画持续时间
    >

    <com.dingmouren.annularmenu.ShadowImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_centerHorizontal="true"
        app:src="@mipmap/menu" //第一个是打开或者关闭菜单的按钮
        app:shadowOffsetX="2dp" //阴影在x方向的偏移量
        app:shadowOffsetY="2dp" //阴影在y方向的偏移量
        app:shadowRadius="5dp"  //阴影的半径
        />
    <com.dingmouren.annularmenu.ShadowImageView
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_centerHorizontal="true"
        app:src="@mipmap/item1" //下面的都是菜单的item项
        app:shadowOffsetX="2dp"
        app:shadowOffsetY="2dp"
        app:shadowRadius="2dp"
        />
        ...
 </com.dingmouren.annularmenu.AnnularMenu>

2.代码中的菜单item项点击的监听

menu1.setOnMenuItemClickListener(new AnnularMenu.OnMenuItemClickListener() {
            @Override
            public void onClick(View view, int position) {

            }
        });

属性

AnnularMenu 描述
position 菜单的位置,取值有:left_top left_bottom right_top right_bottom,默认是right_bottom
radius 菜单的半径,在菜单的item项数目增多的时候需要设置radius调整item的间距
toggleDuration 菜单打开/关闭动画的持续时间,默认是500毫秒
ShadowImageView 描述
shadowOffsetX 阴影在x方向上的偏移量
shadowOffsetY 阴影在y方向上的偏移量
shadowRadius 阴影半径
src 指定图片

AnnularMenu公开的方法

AnnularMenu 描述
public boolean isOpen() 判断菜单当前是打开还是关闭状态
public void toggle() 根据菜单当前状态切换打开或者关闭菜单
public void setOnMenuItemClickListener(OnMenuItemClickListener onMenuItemClickListener) 菜单item项的点击监听
public void setMenuButtonClickable(boolean clickable) 设置菜单按钮是否可点击