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"/>
属性
Attributes | Format | Default | Description |
---|---|---|---|
mccb_icon | drawable | null | The icon of the button. |
mccb_enableParallax | boolean | true | Enable 3D parallax effect or not. |
mccb_collapseRadius | dimension | 40dp | The radius of the button when it is collapsed. |
mccb_expandRadius | dimension | 120dp | The radius of the button when it is expanded. |
mccb_text | string | null | The tittle of the button. |
mccb_textSize | string | 35sp | The text size of the button. |
mccb_textColor | color | white | The text color of the button. |
mccb_buttonColor | color | #FC516A | The color of the button. |
mccb_duration | integer | 200ms | Animation duration. |
mccb_itemRadius | dimension | 20dp | The radius of items. |
mccb_itemDistanceToCentre | dimension | expandRadius * 2 / 3 | The distance from items' centre to button's centre. |
mccb_itemBackgroundColor | color | white | The background color of items. |
mccb_showBackgroundShadow | boolean | true | Whether show shadow when hold the button. |
mccb_backgroundShadowColor | color | #bb757575 | The 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