44

我使用了这个库https://github.com/futuresimple/android-floating-action-button。如何更改主按钮的图像?我想在选择一个较小的按钮后立即更改按钮图像。

4

9 回答 9

60

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

由于这个类是 ImageView 的后代,您可以通过 setImageDrawable(Drawable) 控制显示的图标。

或者你可以使用 setImageResource():

fab.setImageResource(R.drawable.ic_shopping_cart_white);
于 2015-08-18T20:33:46.313 回答
32

您可以在 .XML 中使用它:

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

在代码中使用它:

 mFloatingActionButton.setImageResource(R.drawable/icon2);
于 2016-07-21T15:41:20.673 回答
2
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_btn);

// State 1 -on

fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_on));

// State  2 - off

fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_off));
于 2016-10-31T08:34:43.820 回答
1

我最近遇到了同样的问题,我尝试了以下选项

  fab:fab_icon="@drawable/icon"

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

甚至以编程方式尝试

 fab_menu_btn.setImageResource();

没有任何效果。

解决方法:在app的build.gradle文件中替换

  compile 'com.getbase:floatingactionbutton:1.10.0'

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

在 .xml 文件中使用:

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

在活动文件中:

      floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));
于 2017-11-14T17:10:59.610 回答
1

在 Kotlin 中,这将是:

@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
private fun pauseTimer() {
floatingActionButton.setImageDrawable(getDrawable(R.drawable.ic_baseline_play_arrow))
于 2020-10-08T10:22:23.323 回答
-1

在材料设计版本中:

  • build.gradle(应用程序)
defaultConfig {
    vectorDrawables.useSupportLibrary = true // For srcCompat
}

dependencies {
    implementation 'com.google.android.material:material:<version>'
}
  • XML(用于设置图标)
app:srcCompat="@drawable/ic_google"
app:tint="@color/colorGoogle"

更多文档:https ://material.io/develop/android/components/floating-action-button/

于 2020-05-05T16:38:53.447 回答
-1

不幸的是,使用此库,您无法从菜单中更改图标(从更多信息中查看此库中的问题)

这就是为什么我放弃了这个库以使用一种更灵活的方式!它最初是一个叉子,但现在更先进了。

这是链接

于 2015-09-22T06:53:33.023 回答
-1

我遇到了同样的问题,我设法创建了自己的解决方案。也许其他人发现它也很有用。我已经发布了另一个问题的完整答案(如何将图标设置为 getbase FloatingActionsMenu),但此处发布的这一部分与选择其中一个子按钮时动态更改主菜单按钮图片/图像的问题有关。在这种情况下,您需要将“链接问题”的答案与下面的答案结合起来。

为了在选择 floatingActionButton 时更改菜单按钮上的图标,可以这样实现:

在 xml 文件中创建菜单按钮,在 .java 文件上创建浮动按钮(以编程方式)设置菜单按钮(颜色按钮、颜色按下按钮和图像)。然后只需将所有按钮添加到菜单按钮。FloatingActionsMenu您还可以通过简单地在类中注释掉代码来停用菜单按钮的动画。

然后每次创建按钮时,示例:

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;
            }
        });

请参阅链接上发布的有关如何配置类和定义菜单按钮和浮动按钮的答案。

所以这里要注意的重要部分是:

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

这个方法你需要在FloatingActionsMenu类中添加。只需在要更新图像的每个 floatingActionButton 之后调用该方法。

您可以在我发布的链接上找到更多信息。因此,当您单击其中一个浮动操作按钮时。

目前菜单按钮上的颜色没有正确更新,但如果我找到解决方案,我正在努力,我也会在这里更新答案。希望这会有所帮助,快乐的编码。

于 2016-05-04T18:14:25.410 回答
-4

添加属性

fab:fab_icon="@drawable/fab_expand"

在初始化浮动操作菜单的 xml 中。

于 2015-09-22T06:05:42.897 回答