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

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

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

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

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

спасибо

5 ответов


изменение 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.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_full_sad));

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

floatingActionButton.setImageResource(R.drawable.icon_name)

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

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

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

fab.setImageResource(R.mipmap.ic_arrow_forward);