android:从代码中动态更改FAB(浮动操作按钮)图标

时间:2015-10-15 05:41:19

标签: android material-design floating-action-button

如何在运行时更改活动中的FAB图标。我有这个代码 - >

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabMainActivity);

我知道这可以使用fab.setBackgroundDrawable();,但我是Android的新手,不知道如何做到这一点。

任何帮助都将受到高度赞赏。

由于

5 个答案:

答案 0 :(得分:75)

更改FloatingActionButton来源:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            floatingActionButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_full_sad, context.getTheme()));
        } else {
            floatingActionButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_full_sad));
    }

这可以替换为支持库中的以下代码:

floatingActionButton.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_full_sad));

答案 1 :(得分:15)

或者您使用支持库:

floatingActionButton.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_full_sad));

答案 2 :(得分:11)

如果您使用的是支持库:

floatingActionButton.setImageResource(R.drawable.icon_name)

答案 3 :(得分:1)

假设您将使用图像ic_arrow_forward.png作为工厂的背景:

$target_path = "upload/"; $target_path2 = "branch model/upload/"; move_uploaded_file($_FILES['file']['tmp_name'], $target_path.$name); copy($target_path.$name, $target_path_2.$name);

答案 4 :(得分:0)

我使用的内容如下,

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