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