Ich habe eine Bildschaltfläche, die nicht mit einer Touch-Animation reagiert, wenn sie angeklickt wird, da es sich um ein statisches Bild handelt, im Gegensatz zu regulären Tasten auf Lollipop, die mit dem eingebauten Ripple-Effekt ausgestattet sind. Ich möchte dem Bild den Material Design-Ripple-Touch-Effekt hinzufügen, finde aber keine Möglichkeit, es zu implementieren. Ich kann einen Farbfilter über das Bild setzen, aber das ist nicht der Welleneffekt. Ein Beispiel für das, was ich versuche, ist, wenn Sie ein Albumcover-Bild in Google Play Musik halten und eine Schattenrunzel über das Bild bewegt.Wenden Sie Material Design Touch Ripple auf ImageButton an?
Antwort
Für noch besseres Ergebnis:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_button"
android:background="?attr/selectableItemBackgroundBorderless"
/>
Sie können nur einen Hintergrund zu Ihrem Image wie folgt hinzu:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/btn_dialog"
android:background="?android:attr/selectableItemBackground" />
Was passiert, wenn ich bereits einen Hintergrund als Hintergrund habe? – JohannaNoobie
Oder alternativ, wenn Sie API 21+, verwenden Sie Targeting sind backgroundTint
:
<ImageButton
android:backgroundTint="@color/white"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/ic_button"
style="@style/Widget.AppCompat.ImageButton"/>
diese Antwort funktioniert nicht. – JohannaNoobie
ich habe gute Antworten von i.shadrin (here) und Nicolar s (here).
Der Unterschied zwischen ihren Antworten ist, dass ?attr/selectableItemBackgroundBorderless
Ihnen eine android.view.InflateException
geben kann, so dass die ?android:attr/selectableItemBackground
die Lösung ist.
FWIW, ich weiß nicht, warum die Ausnahme passiert, weil die erste Antwort in allen meinen alten Projekten gut funktionierte, aber in meinem letzten Projekt nicht (vielleicht weil das App-Thema = android:Theme.Material
?).
Das Merkwürdige, das geschah, ist, dass, obwohl die sich allmählich ausbreitende Wirkung gezeigt wurde, war es das Image out-begrenzende, so ist die Lösung:
- Um
die android:foreground="?android:attr/selectableItemBackgroundBorderless"
statt android:background="?android:attr/selectableItemBackgroundBorderless"
zu verwenden Ich hoffe, es hilft Ihnen, wenn Sie vor dem gleichen stehen.
- 1. Disable Material Ripple auf Tablayout
- 2. Wenden Sie einen "langen Touch" -Ereignishandler auf Google Maps an
- 3. L-release-ähnliche Touch-Ripple-Animation auf Pre-L
- 4. Ripple-Effekt funktioniert nicht in Bootstrap Material Design
- 5. ImageButton Touch-Feedback
- 6. Verwenden von Elevation und Ripple in ImageButton
- 7. Was genau ist "Touch Zielgröße" in Android Material Design
- 8. Wenden Sie Matrixtransformationen auf BoundingBox an
- 9. Wenden Sie Containment auf Clone JQuery an
- 10. Wenden Sie Winkelbindung auf dynamisches HTML an
- 11. Material Design Symbol Farben
- 12. Angular Material Design Welligkeit auf MD-Liste> MD-Element
- 13. Material Design Lite Font Ausgabe
- 14. Material Design: Optisch Gruppierung Ansichten
- 15. Material Design Transparent ActionBar
- 16. Hintergrund Farbwechsel Material Design
- 17. android Material Design klicken Sie auf Ereignis auf Registerkarten
- 18. Material Design Lite Switch funktioniert nicht auf jquery laden
- 19. Material Design progressdialog
- 20. Android Material Design Profilseite
- 21. Wo Ripple definiert ist auf Material Flat Button
- 22. ng-wenn Material entfernt Design lite Kräuselungeffekt
- 23. Ripple-Effekt wie auf design.google.com
- 24. Material Design erweiterbar Schublade
- 25. Material Design Lite - Suchleiste in Nav-Header
- 26. Wie Material Design auf Android Studio-Projekt
- 27. Wie wenden Sie Scrum auf den Design-Teil der Web-Entwicklung an?
- 28. Animate Statusleiste Farbe auf DrawerLayout - Material Design
- 29. Material Design Lite Menü dynamisch ng-repeat
- 30. Android Material Design
Dies ist die bessere Antwort - danke für das kreisförmige Gefühl und den Welleneffekt. – ElliotM
ich liebe diese Antwort! – grAPPfruit
Wie invertieren Sie den Effekt für den Einsatz auf dunklem Hintergrund? –