更改图像浮动操作按钮Android

qgelzfjb  于 2023-03-27  发布在  Android
关注(0)|答案(9)|浏览(140)

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

l7wslrjt

l7wslrjt1#

https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html开始
由于该类继承自ImageView,因此您可以通过setImageDrawable(Drawable)控制显示的图标。
也可以使用setImageResource():

fab.setImageResource(R.drawable.ic_shopping_cart_white);
um6iljoc

um6iljoc2#

你可以在你的.XML中使用这个:

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

在代码中使用:

mFloatingActionButton.setImageResource(R.drawable.icon2);
qlzsbp2j

qlzsbp2j3#

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

l7mqbcuq4#

在Kotlin中,这将是:

@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
private fun pauseTimer() {
floatingActionButton.setImageDrawable(getDrawable(R.drawable.ic_baseline_play_arrow))
iezvtpos

iezvtpos5#

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

fab:fab_icon="@drawable/icon"

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

甚至尝试过编程

fab_menu_btn.setImageResource();

什么都不管用。
解决方案:在应用的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));
liwlm1x9

liwlm1x96#

在材质设计版本中:

  • 构建.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/

h22fl7wq

h22fl7wq7#

我也有同样的问题,我设法创造了我自己的解决方案。也许其他人也发现它很有用。我已经张贴了另一个问题的完整答案(如何将图标设置为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之后调用这个方法。
更多的信息,你可以找到的链接,我已经张贴。所以,当你点击其中一个floatingActionButton(s)。
目前菜单按钮上的颜色没有正确更新,但我正在努力,如果我找到一个解决方案,我会在这里更新的答案。希望这有助于,快乐的编码。

2j4z5cfb

2j4z5cfb8#

不幸的是,这个库不能从菜单中更改图标(更多信息请参阅这个库的问题)
这就是为什么我放弃了这个库,以使用一种更灵活的方式!它最初是一个fork,但现在更高级了。
这是link

olmpazwi

olmpazwi9#

添加属性

fab:fab_icon="@drawable/fab_expand"

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

相关问题