Android: динамически менять значок FAB (плавающей кнопки) из кода

Как изменить значок FAB в Activity во время выполнения. У меня есть этот код →

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

Я знаю, что это возможно, используя fab.setBackgroundDrawable();, но я новичок в android, не понимаю, как это сделать.

Любая помощь будет высоко оценена.

Спасибо

Ответ 1

Изменение источника 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));

Ответ 2

Или вы используете библиотеку поддержки:

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

Ответ 3

Если вы используете библиотеку поддержки:

floatingActionButton.setImageResource(R.drawable.icon_name)

Ответ 4

Что я использую следующим образом,

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

Ответ 5

Предположим, что вы будете использовать изображение ic_arrow_forward.png в качестве фона fab:

fab.setImageResource(R.mipmap.ic_arrow_forward);