【问题标题】:Change image Floating Action Button Android更改图像浮动操作按钮 Android
【发布时间】:2015-08-07 23:06:49
【问题描述】:

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

【问题讨论】:

标签: android floating-action-button


【解决方案1】:

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

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

或者你可以使用 setImageResource():

fab.setImageResource(R.drawable.ic_shopping_cart_white);

【讨论】:

    【解决方案2】:

    您可以在 .XML 中使用它:

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

    在代码中使用它:

     mFloatingActionButton.setImageResource(R.drawable/icon2);
    

    【讨论】:

      【解决方案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));
      

      【讨论】:

        【解决方案4】:

        在 Kotlin 中,这将是:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            我遇到了同样的问题,我设法创建了自己的解决方案。也许其他人发现它也很有用。我已经发布了另一个问题 (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) 时。

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

            【讨论】:

            • -1 是有原因的,还是只是为了好玩?有人试过这个解决方案,但对他不起作用?
            • 我投了-1票,因为它不适合我。事实上,在我投票后的一段时间内,我试图取消投票,因为它并不酷但我不被允许......所以,对不起:/
            【解决方案7】:

            在材料设计版本中:

            • 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/

            【讨论】:

              【解决方案8】:

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

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

              这里是link

              【讨论】:

                【解决方案9】:

                添加属性

                fab:fab_icon="@drawable/fab_expand"
                

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

                【讨论】:

                • 嘿,这个属性不存在! fab:fab_icon
                • 此答案适用于自定义库 futuresimple,不适用于标准 FAB
                猜你喜欢
                • 2016-03-02
                • 2015-09-07
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-01-13
                • 2017-03-27
                • 2020-07-17
                • 1970-01-01
                相关资源
                最近更新 更多