web-dev-qa-db-ja.com

android:コードからFAB(フローティングアクションボタン)アイコンを動的に変更

実行中にアクティビティのFABアイコンを変更する方法。私はこのコードを持っています->

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

fab.setBackgroundDrawable();を使用してこれが可能であることは知っていますが、私はAndroidの初心者です。これを行う方法がわかりません。

どんな助けも大歓迎です。

ありがとう

41
ezcodr

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

または、サポートライブラリを使用します。

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

サポートライブラリを使用している場合:

floatingActionButton.setImageResource(R.drawable.icon_name)
13
PaulT

画像ic_arrow_forward.pngをファブの背景として使用すると仮定します。

fab.setImageResource(R.mipmap.ic_arrow_forward);

1
EckoTan

私が次のように使用しているもの、

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