Change image Floating Action Button Android

2019-01-26 02:35发布

I used this library https://github.com/futuresimple/android-floating-action-button. How can I change the image of the main button? I want to change the button image right after selecting one of the smaller buttons.

7条回答
够拽才男人
2楼-- · 2019-01-26 03:18

you can use this in your .XML :

android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color

use this in code:

 mFloatingActionButton.setImageResource(R.drawable/icon2);
查看更多
SAY GOODBYE
3楼-- · 2019-01-26 03:27

Add the property

fab:fab_icon="@drawable/fab_expand"

in the xml where you initialized the floating action menu.

查看更多
干净又极端
4楼-- · 2019-01-26 03:29

I faced same issue recently, I tried with following option

  fab:fab_icon="@drawable/icon"

and

 android:src="@drawable/icon" // change backgroung icon

even tried programmatically

 fab_menu_btn.setImageResource();

Nothing worked.

Solution: In app's build.gradle file replace

  compile 'com.getbase:floatingactionbutton:1.10.0'

to

compile 'com.github.toanvc:floatingactionmenu:0.8.9'

In .xml file Use:

           <toan.android.floatingactionmenu.FloatingActionsMenu
          </toan.android.floatingactionmenu.FloatingActionsMenu>

In activity File:

      floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));

Thanks

查看更多
Root(大扎)
5楼-- · 2019-01-26 03:36

From https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html

As this class descends from ImageView, you can control the icon which is displayed via setImageDrawable(Drawable).

Or you can use setImageResource():

fab.setImageResource(R.drawable.ic_shopping_cart_white);
查看更多
兄弟一词,经得起流年.
6楼-- · 2019-01-26 03:36

I had the same problem and I managed to create my own solution. Maybe some else founds it also useful. I have posted the complete answer to another question (How to set an icon to getbase FloatingActionsMenu) but this part posted here is relevant to the question in dynamically changing the main menu button picture/image when one of the sub buttons is chosen. In this case, you need o combine the answer from the "linked question" and the answer below.

In order to change the icon on the menu button when you choose a floatingActionButton it can be implemented like this:

Create menu button in xml file, create floating button(s) on .java file (programmatically) set menu button (color button, color pressed button and image). Then simply add all buttons to the menu button. You can also deactivate the animation of the menu button by simply commenting out the code in FloatingActionsMenu class.

Then every time that you create a button, sample:

final FloatingActionButton actionA = new FloatingActionButton(getBaseContext());
        actionA.setTitle("Familie");
        actionA.setIcon(R.drawable.world_map);
        actionA.setSize(FloatingActionButton.SIZE_MINI);
        actionA.setColorNormalResId(R.color.red);
        actionA.setColorPressedResId(R.color.black_semi_transparent);
        actionA.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
                Toast.makeText(MainMapView.this, "Action Description", Toast.LENGTH_SHORT).show();
                ((FloatingActionsMenu) findViewById(R.id.multiple_actions)).collapse();
                return;
            }
        });

See the answer posted on the link on how to configure the classes and define the menu button and floating button(s).

So the important part to notice here is:

menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);

This method you need to add in the FloatingActionsMenu class. Simply you call the method after on every floatingActionButton you want to update the image.

More information you can find on the link that I have posted. So when you click one of the floatingActionButton(s).

For the moment the color on the menu button is not updating correctly but I am working on it if I find a solution I will update the answer here as well. Hope this helps, happy coding.

查看更多
你好瞎i
7楼-- · 2019-01-26 03:38

Unfortunately with this library you can't change the icon from the menu (see issues from this library from more info)

That is why I dropped this library to use a way more flexible one! It is originally a fork but it is now more advanced ;)

Here is the link

Enjoy!

查看更多
登录 后发表回答