webentwicklung-frage-antwort-db.com.de

android: Ändere dynamisch das FAB-Symbol (Floating Action Button) aus dem Code

So ändern Sie das FAB-Symbol in einer Aktivität zur Laufzeit. Ich habe diesen Code ->

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

Ich weiß, dass dies mit fab.setBackgroundDrawable(); möglich ist, aber ich bin ein Neuling in Android, verstehe nicht, wie das geht.

Jede Hilfe wird sehr geschätzt.

Vielen Dank

41
ezcodr

Ändern der FloatingActionButton-Quelle:

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

Dies kann stattdessen durch folgenden Code aus der Support-Bibliothek ersetzt werden:

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

Oder Sie nutzen die Support Library:

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

Wenn Sie die Support-Bibliothek verwenden:

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

Angenommen, Sie verwenden das Bild ic_arrow_forward.png als Hintergrund für Ihre Fab:

fab.setImageResource(R.mipmap.ic_arrow_forward);

1
EckoTan

Was ich wie folgt benutze,

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