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

image

AnnularMenu是基于Material Design设计的环形菜单控件。具体使用请往下阅读。

             image image    image

项目地址https://github.com/DingMouRen/AnnularMenuView

引入方式

在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)设置菜单按钮是否可点击

欢迎大家提建议