MultiChoicesCircleButton

介绍:

弹出3d视差效果菜单的按钮。

运行效果:

使用说明:

依赖

dependencies {
   compile 'com.gjiazhe:MultiChoicesCircleButton:1.0'
}

布局

<com.gjiazhe.multichoicescirclebutton.MultiChoicesCircleButton
    android:id="@+id/multiChoicesCircleButton"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:mccb_collapseRadius="40dp"
    app:mccb_expandRadius="120dp"
    app:mccb_icon="@drawable/plus"
    app:mccb_text="Choose"
    app:mccb_buttonColor="@color/colorAccent"
    app:layout_behavior="@string/multi_choices_circle_button_behavior"/>

属性

AttributesFormatDefaultDescription
mccb_icondrawablenullThe icon of the button.
mccb_enableParallaxbooleantrueEnable 3D parallax effect or not.
mccb_collapseRadiusdimension40dpThe radius of the button when it is collapsed.
mccb_expandRadiusdimension120dpThe radius of the button when it is expanded.
mccb_textstringnullThe tittle of the button.
mccb_textSizestring35spThe text size of the button.
mccb_textColorcolorwhiteThe text color of the button.
mccb_buttonColorcolor#FC516AThe color of the button.
mccb_durationinteger200msAnimation duration.
mccb_itemRadiusdimension20dpThe radius of items.
mccb_itemDistanceToCentredimensionexpandRadius * 2 / 3The distance from items' centre to button's centre.
mccb_itemBackgroundColorcolorwhiteThe background color of items.
mccb_showBackgroundShadowbooleantrueWhether show shadow when hold the button.
mccb_backgroundShadowColorcolor#bb757575The shadow's color when hold the button.

Set Items

Construct the item with its title, icon and angle.

MultiChoicesCircleButton.Item item1 = new MultiChoicesCircleButton.Item("Like", getResources().getDrawable(R.drawable.icon1), 30);
MultiChoicesCircleButton.Item item2 = new MultiChoicesCircleButton.Item("Message", getResources().getDrawable(R.drawable.icon2), 90);
MultiChoicesCircleButton.Item item3 = new MultiChoicesCircleButton.Item("Tag", getResources().getDrawable(R.drawable.icon3), 150);
List<MultiChoicesCircleButton.Item> buttonItems = new ArrayList<>();
buttonItems.add(item1);
buttonItems.add(item2);
buttonItems.add(item3);
MultiChoicesCircleButton multiChoicesCircleButton = (MultiChoicesCircleButton) findViewById(R.id.multiChoicesCircleButton);
multiChoicesCircleButton.setButtonItems(buttonItems);

Set OnSelectedItemListener and OnHoverItemListener

multiChoicesCircleButton.setOnSelectedItemListener(new MultiChoicesCircleButton.OnSelectedItemListener() {
    @Override
    public void onSelected(MultiChoicesCircleButton.Item item, int index) {
        // Do something
    }
});
multiChoicesCircleButton.setOnHoverItemListener(new MultiChoicesCircleButton.OnHoverItemListener(){
    @Override
    public void onHovered(MultiChoicesCircleButton.Item item, int index) {
        // Do something
    }
});

Wrok with CoordinatorLayout to enable auto hide/show when scrolling

<com.gjiazhe.multichoicescirclebutton.MultiChoicesCircleButton
    ....
    app:layout_behavior="@string/multi_choices_circle_button_behavior"/>
已下载
0