Najpierw wyjaśnij swoje pytanie. Czego właściwie potrzebujesz i czego próbowałeś do tej pory. Po prostu powiedzenie, że chcę efektu ripple, sprawia, że jest to bardzo szerokie pytanie. Możesz również podać link do odniesienia do tego, czego chcesz. Zobacz także stackoverflow. com / help / how-to-ask
Anirudh Sharma
Właściwie chcę mieć efekt dla widoku tekstu i efektu zaznaczania / odznaczania widoku obrazu.
Czy jest jakaś różnica w używaniu selectableItemBackgroundvsselectableItemBackgroundBorderless
rakesh kashyap
Nie wiem, dlaczego nie był ograniczony do granic i rozszerza się na cały layout
VSB
4
@rakeshkashyap różnica polega na tym, że selectableItemBackground zachowa tętnienie w ramach rozmiaru widoku (szerokość / wysokość). selectableItemBackgroundBorderless rozszerzy swoje tętnienie na inne widoki (takie jak ripple oficjalnej aplikacji kalkulatora)
Tudor
1
a także trzeba ustawić to >>> android: focusable = "true"
Amos
Pomocny. Dzięki.
Pooja
25
Proszę zapoznać się z poniższą odpowiedzią na efekt tętnienia.
Proszę zauważyć, że selectableItemBackgroundBorderlessjest to API 21+. Poniżej możesz wybrać, selectableItemBackgroundaby uniknąć problemu ze zgodnością
<?xml version="1.0" encoding="utf-8"?><!--this ribble animation only working for >= android version 21--><ripplexmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/click_efect"/>
Wspomniałem już o tym wcześniej ( stackoverflow.com/a/50347848/1954960 ), więc zamiast powodować zduplikowaną odpowiedź, kliknij kciuk w górę, dziękuję! :)
Zafer Celaloglu
5
Oprócz powyższych odpowiedzi dodano możliwość zaznaczenia, aby uniknąć ostrzeżenia edytora interfejsu użytkownika
Oprócz odpowiedzi @Bikesh M Annur, pamiętaj o zaktualizowaniu bibliotek pomocy technicznej. Wcześniej używałem 23.1.1 i nic się nie działo. Aktualizacja do 23.3.0 załatwiła sprawę.
Używałem go przez dłuższy czas, ale już go nie polecam, chyba że celujesz w Androida 2.3. Jest błędny, opóźniony i generuje kod standardowy. A ponieważ obecnie 43% wszystkich urządzeń ma Androida 5 lub 6, możesz po prostu trzymać się selectableItemBackground, kierując się na Androida 4 lub nowszego.
Korzystanie z bibliotek. To jest jeden z nich. Po prostu dodaj jego zależność i umieść poniższy kod w xml przed każdym elementem, który wymaga efektu ripple:
och, proszę, nie, to nie jest najlepszy sposób, ponieważ masz mniejszą kontrolę nad nim i jest on szeroko obsługiwany w samym zestawie Android SDK. Jeśli ktoś to czyta, polecam spojrzeć na komentarz @Bikesh lub Karthik, jeśli chcesz kontrolować kolor.
Odpowiedzi:
Ref: http://developer.android.com/training/material/animations.html ,
http://wiki.workassis.com/category/android/android-xml/
źródło
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbcJeśli chcesz, aby tętnienie było powiązane z rozmiarem TextView / ImageView, użyj:
(Myślę, że wygląda lepiej)
źródło
selectableItemBackground
vsselectableItemBackgroundBorderless
Proszę zapoznać się z poniższą odpowiedzią na efekt tętnienia.
ripple on Textview lub view:
ripple on Button lub Imageview:
źródło
selectableItemBackgroundBorderless
jest to API 21+. Poniżej możesz wybrać,selectableItemBackground
aby uniknąć problemu ze zgodnościąMożesz użyć android-ripple-background
Rozpocznij efekt
Zatrzymaj animację:
źródło
dodaj to do rysowania
Spróbuj tego.
źródło
Spróbuj tego. To działa dla mnie.
źródło
Oprócz powyższych odpowiedzi dodano możliwość zaznaczenia, aby uniknąć ostrzeżenia edytora interfejsu użytkownika
źródło
W przypadku, gdy dobrze ocenione rozwiązanie opublikowane przez @Bikesh M Annur ( tutaj ) nie działa, spróbuj użyć:
Ponadto podczas korzystania z
android:clickable="true"
dodawania,android:focusable="true"
ponieważ:„ Widget, który został zadeklarowany jako klikalny, ale nie został zadeklarowany jako aktywny, nie jest dostępny za pomocą klawiatury ”.
źródło
Dodaj
android:clickable="true"
android:focusable="true"
Efekt falowania
Do wyboru efektu
Efekt przycisku
źródło
Oprócz odpowiedzi @Bikesh M Annur, pamiętaj o zaktualizowaniu bibliotek pomocy technicznej. Wcześniej używałem 23.1.1 i nic się nie działo. Aktualizacja do 23.3.0 załatwiła sprawę.
źródło
dla tętnienia koła:
android:background="?attr/selectableItemBackgroundBorderless"
dla tętnienia prostokąta:
android:background="?attr/selectableItemBackground"
źródło
Lub możesz spróbować użyć tej biblioteki (Android 9+): RippleEffect
Integracja
Stosowanie:
źródło
selectableItemBackground
, kierując się na Androida 4 lub nowszego.Najlepszym sposobem jest dodanie:
źródło
Korzystanie z bibliotek. To jest jeden z nich. Po prostu dodaj jego zależność i umieść poniższy kod w xml przed każdym elementem, który wymaga efektu ripple:
źródło