Android ändern schwimmende Aktion Button Farbe

Ich habe versucht, Stunden zu ändern, um Material's Floating Action Button Farbe zu ändern, aber ohne Erfolg.

<android.support.design.widget.FloatingActionButton android:id="@+id/profile_edit_fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="16dp" android:clickable="true" android:src="@drawable/ic_mode_edit_white_24dp" /> 

Ich habe versucht, hinzuzufügen

  • Wie man Schatteneffekt auf ziehbar in android hinzufügt
  • Ändern Sie die Textfarbe eines einzelnen ClickableSpan, wenn Sie gedrückt werden, ohne andere ClickableSpans in der gleichen TextView zu beeinflussen
  • Android Studio - Unerkannte VM-Option 'MaxPermSize = 256m'
  • Android Haupt-Thread blockiert WebView Thread
  • Holen Sie sich Höhe durch Längengrad und Breite in Android
  • Kann nicht finden android.support.design.widget.Snackbar in Support-Design-Bibliothek
  •  android:background="@color/mycolor" 

    Oder per Code

     FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab); fab.setBackgroundColor(Color.parseColor("#mycolor")); 

    oder

     fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor"))); 

    Aber keiner der oben genannten arbeitete. Ich habe auch die Lösungen in der "doppelten Frage" ausprobiert, aber keiner von ihnen funktioniert, Knopf blieb grün und wurde auch ein Platz.

    Ich möchte eine ausführliche Antwort, danke.

    PS Es wäre auch schön zu wissen, wie man Kräuselungseffekt hinzufügt, konnte das auch nicht verstehen.

  • Um die Google-Karte auf dem Emmulator anzuzeigen
  • Android: ListView.getScrollY () - funktioniert es?
  • Wie kann ich wissen, ob der Benutzer den Status der Toggle-Taste geändert hat?
  • Wie finde ich Element in View von Koordinaten x, y Android
  • Encoding H.264 von der Kamera mit Android MediaCodec
  • Ist SQLite cursor.getCount teure Bedienung in Android
  • 15 Solutions collect form web for “Android ändern schwimmende Aktion Button Farbe”

    Wie in der Dokumentation beschrieben , wird standardmäßig die Farbe in styles.xml Attribut colorAccent gesetzt .

    Die Hintergrundfarbe dieser Ansicht ist standardmäßig auf den FarbAccent Ihres Themas eingestellt. Wenn du dies zur Laufzeit ändern willst, dann kannst du dies über setBackgroundTintList (ColorStateList) machen.

    Wenn Sie die Farbe ändern möchten

    • In XML mit Attribut app: backgroundTint
     <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_add" app:backgroundTint="@color/orange" app:borderWidth="0dp" app:elevation="6dp" app:fabSize="normal" > 
    • In Code mit .setBackgroundTintList (Antwort unten von ywwynm )

    Als @Dantalian in den Kommentaren erwähnt, wenn Sie die Ikonenfarbe ändern möchten, können Sie verwenden

     android:tint="@color/white" 

    Vijet Badigannavars Antwort ist richtig, aber mit ColorStateList ist in der Regel kompliziert und er hat uns nicht gesagt, wie es geht. Da wir uns oft darauf konzentrieren, die Farbe von View im normalen und gepressten Zustand zu ändern, werde ich weitere Details hinzufügen:

    1. Wenn du die Farbe von FAB im Normalzustand ändern willst, kannst du einfach schreiben

       mFab.setBackgroundTintList(ColorStateList.valueOf(your color in int)); 
    2. Wenn du die Farbe von FAB im gedrückten Zustand ändern möchtest, danke für Design Support Library 22.2.1 kannst du einfach schreiben

       mFab.setRippleColor(your color in int); 

      Wenn Sie dieses Attribut setzen, wenn Sie das FAB lang gedrückt haben, erscheint eine Kräuselung mit Ihrer Farbe an Ihrem Berührungspunkt und zeigt sich in die gesamte Oberfläche von FAB . Bitte beachten Sie, dass es die Farbe des FAB nicht im normalen Zustand ändert. Unterhalb von API 21 (Lollipop) gibt es keinen Welligkeitseffekt, aber die Farbe von FAB wird sich noch ändern, wenn du sie drückst.

    Schließlich, wenn du komplexere Effekte für Staaten umsetzen willst, dann solltest du tief in ColorStateList , hier ist eine Frage, die es besprochen hat: Wie kann ich ColorStateList programmgesteuert erstellen? .

    UPDATE: Danke für den Kommentar von @ Kaitlyn. Um den Strich von FAB mit backgroundTint als Farbe zu entfernen, kannst du app:borderWidth="0dp" in deinem xml setzen.

    Wie Vasil Valchev in einem Kommentar notiert ist, ist es einfacher als es aussieht, aber es gibt einen subtilen Unterschied, den ich in meinem XML nicht bemerkte.

     <android.support.design.widget.FloatingActionButton android:id="@+id/profile_edit_fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="16dp" android:clickable="true" android:src="@drawable/ic_mode_edit_white_24dp" app:backgroundTint="@android:color/white"/> 

    Beachten Sie, dass es ist:

     app:backgroundTint="@android:color/white 

    Und nicht

     android:backgroundTint="@android:color/white" 

    Wenn du versuchst, die Farbe von FAB zu ändern, indem du app benutzt hast, da ein Problem. Rahmen des Knopfes haben unterschiedliche Farbe, also was Sie tun müssen:

     app:backgroundTint="@android:color/transparent" 

    Und im Code die Farbe einstellen:

     actionButton.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.white))); 

    Die FAB ist farbig auf der Grundlage Ihrer colorAccent .

     <style name="AppTheme" parent="Base.Theme.AppCompat.Light"> <item name="colorAccent">@color/accent</item> </style> 

    benutz einfach,

     app:backgroundTint="@color/colorPrimary" 

    Nicht verwenden,

     android:backgroundTint="@color/colorPrimary" 

    Das Dokument deutet darauf hin, dass es die @ Farbe / Akzent standardmäßig nimmt. Aber wir können es auf Code durch die Verwendung überschreiben

     fab.setBackgroundTintList(ColorStateList) 

    Denken Sie auch daran,

    Die minimale API-Version, die diese Bibliothek benutzt, ist 15, also musst du es aktualisieren! Wenn Sie es nicht tun wollen, dann müssen Sie eine benutzerdefinierte zeichnen und dekorieren!

    Andere Lösungen können funktionieren. Dies ist der 10-Pfund-Gorilla-Ansatz, der den Vorteil hat, in diesem und ähnlichen Fällen breit anwendbar zu sein:

    Styles.xml:

     <style name="AppTheme.FloatingAccentButtonOverlay" > <item name="colorAccent">@color/colorFloatingActionBarAccent</item> </style> 

    Ihr Layout xml:

     <android.support.design.widget.FloatingActionButton android:theme="AppTheme.FloatingAccentButtonOverlay" ... </android.support.design.widget.FloatingActionButton> 
      <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" app:elevation="6dp" app:backgroundTint="@color/colorAccent" app:pressedTranslationZ="12dp" android:layout_margin="@dimen/fab_margin" android:src="@drawable/add"/> 

    Beachten Sie, dass Sie Farben in res / values ​​/ color.xml hinzufügen und das Attribut in Ihrem Fab enthalten

      app:backgroundTint="@color/addedColor" 

    Dank Autocomplete. Ich habe Glück nach ein paar Hit und Trials:

      xmlns:card_view="http://schemas.android.com/apk/res-auto" card_view:backgroundTint="@color/whicheverColorYouLike" 

    – oder – (beide sind grundsätzlich dasselbe)

      xmlns:app="http://schemas.android.com/apk/res-auto" app:backgroundTint="@color/whicheverColorYouLike" 

    Das hat für mich auf der API Version 17 mit der Designbibliothek 23.1.0 gearbeitet.

    Ich habe das gleiche Problem und seine alle schnappen meine Haare. Vielen Dank für diese https://stackoverflow.com/a/35697105/5228412

    Was wir tun können..

      favourite_fab.setImageDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.favourite_selected)); 

    Es geht gut für mich und wünscht für andere, die hier zu erreichen sind.

    Der Punkt, den wir vermissen, ist, dass, bevor Sie die Farbe auf den Knopf setzen, ist es wichtig, an dem Wert zu arbeiten, den Sie für diese Farbe wünschen. So kannst du auf Werte> Farbe gehen. Sie finden die Standardeinstellungen, aber Sie können auch Farben erstellen, indem Sie sie einfügen und einfügen, indem Sie die Farben und Namen ändern. Dann … wenn du gehst, um die Farbe der Floating-Taste (in activity_main) zu ändern, kannst du die von dir erstellte auswählen

    Exemple – Code auf Werte> Farben mit Standardfarben + 3 weitere Farben habe ich erstellt:

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="corBotaoFoto">#f52411</color> <color name="corPar">#8e8f93</color> <color name="corImpar">#494848</color> </resources> 

    Jetzt meine Floating Action Button mit der Farbe, die ich erstellt habe und benannt "corPar":

     <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_input_add" android:tint="#ffffff" app:backgroundTint="@color/corPar"/> 

    Es hat für mich gearbeitet Viel Glück!

    Wenn Sie Xamarin für Android App Entwicklung verwenden, dann verwenden Sie unten Code für die Änderung der schwimmenden Button Farbe.

     FloatingActionButton fa = root.FindViewById<FloatingActionButton>(Resource.Id.fabback); Android.Content.Res.ColorStateList csl = new Android.Content.Res.ColorStateList(new int[][] { new int[0] }, new int[]{Android.Graphics.Color.ParseColor("#000000") }); fab.BackgroundTintList= csl; 

    "# 000000" verwendet für schwarze Farbe können Sie nach Ihren Vorgaben geändert werden.

     mFab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext,R.color.mColor))); 

    Sie können diese Zeile in der Datei ändern: FloatingActionButton.java

     mColor = a.getColor(R.styleable.FloatingActionButton_colortemp, Color.WHITE); 

    nach

     mColor = a.getColor(R.styleable.FloatingActionButton_colortemp, Color.RED); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.