我使用了这个库https://github.com/futuresimple/android-floating-action-button。如何更改主按钮的图像?我想在选择一个较小的按钮后立即更改按钮图像。
答案 0 :(得分:40)
来自https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html
当这个类来自ImageView时,你可以控制哪个图标 通过setImageDrawable(Drawable)显示。
或者您可以使用setImageResource():
fab.setImageResource(R.drawable.ic_shopping_cart_white);
答案 1 :(得分:19)
你可以在.XML中使用它:
android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color
在代码中使用它:
mFloatingActionButton.setImageResource(R.drawable/icon2);
答案 2 :(得分:3)
我使用的内容如下,
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));
希望这会对你有所帮助
答案 3 :(得分: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));
由于
答案 4 :(得分:1)
在科特林,这将是
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
private fun pauseTimer() {
floatingActionButton.setImageDrawable(getDrawable(R.drawable.ic_baseline_play_arrow))
快乐的编码,Nenad
答案 5 :(得分:0)
答案 6 :(得分:0)
我遇到了同样的问题,我设法创建了自己的解决方案。也许其他人发现它也很有用。我已经发布了另一个问题(How to set an icon to 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)。
目前菜单按钮上的颜色没有正确更新,但如果我找到解决方案,我正在处理它,我也会在这里更新答案。希望这有帮助,快乐编码。
答案 7 :(得分:0)
在材料设计版本中:
defaultConfig {
vectorDrawables.useSupportLibrary = true // For srcCompat
}
dependencies {
implementation 'com.google.android.material:material:<version>'
}
app:srcCompat="@drawable/ic_google"
app:tint="@color/colorGoogle"
答案 8 :(得分:-2)
添加属性
fab:fab_icon="@drawable/fab_expand"
在初始化浮动操作菜单的xml中。