|
// Set up the white button on the lower right corner |
|
// more or less with default parameter |
|
final ImageView fabIconNew = new ImageView(this); |
|
fabIconNew.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_new_light)); |
|
final FloatingActionButton rightLowerButton = new FloatingActionButton.Builder(this) |
|
.setContentView(fabIconNew) |
|
.build(); |
|
|
|
SubActionButton.Builder rLSubBuilder = new SubActionButton.Builder(this); |
|
ImageView rlIcon1 = new ImageView(this); |
|
ImageView rlIcon2 = new ImageView(this); |
|
ImageView rlIcon3 = new ImageView(this); |
|
ImageView rlIcon4 = new ImageView(this); |
|
|
|
rlIcon1.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_chat_light)); |
|
rlIcon2.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_camera_light)); |
|
rlIcon3.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_video_light)); |
|
rlIcon4.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_place_light)); |
|
|
|
// Build the menu with default options: light theme, 90 degrees, 72dp radius. |
|
// Set 4 default SubActionButtons |
|
final FloatingActionMenu rightLowerMenu = new FloatingActionMenu.Builder(this) |
|
.addSubActionView(rLSubBuilder.setContentView(rlIcon1).build()) |
|
.addSubActionView(rLSubBuilder.setContentView(rlIcon2).build()) |
|
.addSubActionView(rLSubBuilder.setContentView(rlIcon3).build()) |
|
.addSubActionView(rLSubBuilder.setContentView(rlIcon4).build()) |
|
.attachTo(rightLowerButton) |
|
.build(); |
|
|
|
// Listen menu open and close events to animate the button content view |
|
rightLowerMenu.setStateChangeListener(new FloatingActionMenu.MenuStateChangeListener() { |
|
@Override |
|
public void onMenuOpened(FloatingActionMenu menu) { |
|
// Rotate the icon of rightLowerButton 45 degrees clockwise |
|
fabIconNew.setRotation(0); |
|
PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 45); |
|
ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR); |
|
animation.start(); |
|
} |
|
|
|
@Override |
|
public void onMenuClosed(FloatingActionMenu menu) { |
|
// Rotate the icon of rightLowerButton 45 degrees counter-clockwise |
|
fabIconNew.setRotation(45); |
|
PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 0); |
|
ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR); |
|
animation.start(); |
|
} |
|
}) |