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



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

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

我知道这是可能的使用fab.setBackgroundDrawable();,但我是一个新手android,不明白如何做到这一点。

任何帮助都将是非常感激的。

谢谢

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

如果您正在使用支持库:

floatingActionButton.setImageResource(R.drawable.icon_name)

或者使用支持库:

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

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

fab.setImageResource(R.mipmap.ic_arrow_forward);

我的使用如下,

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

最新更新