Skip to content

Basic Usage

Weiping Huang edited this page Dec 10, 2016 · 4 revisions

How to use BMB in just several lines of code?

###Create BMB

Add BMB in .xml file.

<com.nightonke.boommenu.BoomMenuButton
    android:id="@+id/bmb"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

Then in .java file, find your BMB and set some attributes for it.

BoomMenuButton bmb = (BoomMenuButton) findViewById(R.id.bmb);

Set button-enum for BMB, button-enum tells which kind of boom-button(the sub-buttons when booming) that you want.

  1. ButtonEnum.SimpleCircle corresponding to Simple Circle Button
  2. ButtonEnum.TextInsideCircle corresponding to Text Inside Circle Button
  3. ButtonEnum.TextOutsideCircle corresponding to Text Outside Circle Button
  4. ButtonEnum.Ham corresponding to Ham Button
bmb.setButtonEnum(ButtonEnum.SimpleCircle);

Or in .xml:

  1. app:bmb_buttonEnum="simpleCircle"
  2. app:bmb_buttonEnum="textInsideCircle"
  3. app:bmb_buttonEnum="textOutsideCircle"
  4. app:bmb_buttonEnum="ham"

Then you need to tell BMB how it should place pieces on itself. Click the links for 4 kinds of buttons above to check different piece-place-enums.

bmb.setPiecePlaceEnum(PiecePlaceEnum.DOT_3_1);

Or in .xml:

app:bmb_piecePlaceEnum="piecePlace_dot_3_1"

Now tell BMB how to place the buttons on the screen when booming. Click the links for 4 kinds of buttons above to check different button-place-enums.

bmb.setButtonPlaceEnum(ButtonPlaceEnum.SC_3_3);

Or in .xml:

app:bmb_buttonPlaceEnum="buttonPlace_sc_3_3"

###Add Builders You have set attributes for BMB itself, now add builders for customizing boom-buttons to BMB. There are 4 different builders for the 4 kinds of boom-buttons above. For instance, use SimpleCircleButton.Builder for ButtonEnum.SimpleCircle. Click the links for 4 kinds of buttons above to find out how to use builders.

for (int i = 0; i < bmb.getButtonPlaceEnum().buttonNumber(); i++) {
    bmb.addBuilder(new SimpleCircleButton.Builder()
            .normalImageRes(R.drawable.jellyfish));
} 

And now your BMB is ready for a boom.

###Attention You must keep the number of piece-place-enum, number of button-place-enum and number of builders being the same.

The name of piece-place-enum is XXX_N_M, where XXX is name(DOT or HAM), N is number and M represents different types. Similarly, the name of button-place-enum is YYY_N_M. You must keep the first N equals to the second one. But you needn't keep the two M same(The code above is an example: DOT_3_1 and SC_3_3).

And the number of builders must be N. Any breaking-rules-code will get a runtime exception.