webentwicklung-frage-antwort-db.com.de

Festlegen der FloatingActionButton-Welligkeit

Ich versuche, die FloatingActionButton-Welligkeit auf etwas Ähnliches wie this zu setzen.

Vom Materialdesign.

Das Problem ist, dass ich nur einen "flachen Stil" bekomme, bei dem es keine Wellen gibt. Der Button ändert sich in meinem Fall von Weiß zu Orange ohne die in dem Link oben gezeigte Animation.

Ich bin der Antwort hier gefolgt:

FloatingActionButton-Beispiel mit Support Library

aber meine FAB ist immer noch langweilig!

BEARBEITEN: Mein aktueller Code lautet: XML:

  <Android.support.design.widget.FloatingActionButton
     Android:id="@+id/item_activity_fab"
     Android:layout_width="64dp"
     Android:layout_height="64dp"
     Android:layout_marginRight="16dp"
     Android:src="@drawable/watch"
     app:borderWidth="0dp"
     app:elevation="6dp"
     app:fabSize="normal"
     app:layout_anchor="@id/item_activity_title_background"
     app:layout_anchorGravity="top|right|end"
     app:pressedTranslationZ="12dp"
     app:rippleColor="@Android:color/transparent"/>

Java:

    mAddToWatchListFAB.setRippleColor(ContextCompat.getColor(this, R.color.orange_6));

Ich habe diese Methode an der FAB ausprobiert, aber es schien nicht zu funktionieren. Ich habe auch die Schritte in dem von mir bereitgestellten Link ausprobiert

13
x10sion

fügen Sie dem schwimmenden Action-Button-XML-Code die folgenden 2 Eigenschaften hinzu

 app:rippleColor="@color/textcolor"
 Android:clickable="true"

wenn Sie FAB anklickbar machen, wird die Farbe der Wellen hinzugefügt

27
Usman Iqbal

Sie können es so implementieren, wie es meine Gabriele Mariotti

Sie können so etwas tun:

<Button
      Android:layout_width="wrap_content"
      Android:layout_height="wrap_content"
      Android:background="@drawable/ripple"

    />

Wo ist die Ripple.xml:

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android" 
                      Android:color="?android:colorControlHighlight">
        <item Android:id="@Android:id/mask">
            <shape Android:shape="oval">
                <solid Android:color="?android:colorAccent" />
            </shape>
        </item>
 </ripple>

wie gesagt in hier was für alle Welligkeitsbedürfnisse gelten kann. 

UPDATE

<Android.support.design.widget.FloatingActionButton
     Android:id="@+id/item_activity_fab"
     Android:layout_width="64dp"
     Android:layout_height="64dp"
     Android:layout_marginRight="16dp"
     Android:src="@drawable/watch"
     Android:background="@drawable/ripple"
     app:borderWidth="0dp"
     app:elevation="6dp"
     app:fabSize="normal"
     app:layout_anchor="@id/item_activity_title_background"
     app:layout_anchorGravity="top|right|end"
     app:pressedTranslationZ="12dp"/>

Und benutze die obige Ripple.xml. So einfach! Alles was Sie tun müssen, ist zu maskieren :)

UPDATE 2

Für API 20 und darunter gibt es Optionen zum Implementieren des Ripple-Effekts. Überprüfen Sie die folgenden Tipps von Marcin Orlowski

Glücklicherweise sind bereits einige benutzerdefinierte Implementierungen verfügbar:

einschließlich Widget-Sets zum Thema Materlial, die mit älteren Android-Versionen kompatibel sind:

sie können also eines davon oder google für andere "Material-Widgets" oder so ausprobieren ...

4
Sibidharan

Anstelle von transparent verwenden Sie Folgendes:

app:rippleColor="@color/colorAccentLight"

dabei ist colorAccentLight ein hellerer Akzent Ihrer aktuellen Akzentfarbe. In meinem Fall habe ich verwendet:

<color name="colorAccent">#E040FB</color>
<color name="colorAccentLight">#E1BEE7</color>

in der Datei colors.xml ... Sie können es aber auch zu Testzwecken auf eine andere zufällige Farbe (mit Ausnahme Ihrer aktuellen Akzentfarbe) setzen.

1
DaveNOTDavid

Ihre Wellenfarbe ist transparent. Ich nehme an, Ihre Welligkeit zeigt sich normal, aber da sie unsichtbar ist, können Sie sie nicht sehen.

Sehen Sie diese Antwort für eine Lösung.

Android: Können Sie einen Ripple-Effekt haben, dessen Standardstatusfarbe transparent ist?

0
Kuffs
    <!--change this to any color-->
    app:rippleColor="@Android:color/transparent"

    <!-- try this line instead above -->
    app:rippleColor="@color/colorPrimary"
    Android:clickable="true"
0
user3607151