Próbuję dodać animację tętnienia po kliknięciu przycisku. Podobało mi się poniżej, ale wymaga minSdKVersion do 21.
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Przycisk
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
Chcę, aby był on wstecznie zgodny z biblioteką projektów.
Jak to zrobić?
android
material-design
N Sharma
źródło
źródło
?attr:
zamiast?android:attr
odniesień biblioteki obsługi wersji 7, która, zakładając, że jej używasz, zapewnia wsteczną kompatybilność z API 7. Zobacz: developer.android.com/tools/support-library/features. html # v7Wcześniej głosowałem za zamknięciem tego pytania jako nie na temat, ale tak naprawdę zmieniłem zdanie, ponieważ jest to całkiem niezły efekt wizualny, który niestety nie jest jeszcze częścią biblioteki wsparcia. Najprawdopodobniej pojawi się w przyszłej aktualizacji, ale nie podano ram czasowych.
Na szczęście dostępnych jest już kilka niestandardowych implementacji:
w tym zestawy widżetów o tematyce Materlial zgodne ze starszymi wersjami Androida:
więc możesz wypróbować jeden z tych lub Google, aby znaleźć inne „materialne widżety” lub coś takiego ...
źródło
Zrobiłem prostą klasę, która tworzy przyciski ripple, ostatecznie nigdy jej nie potrzebowałem, więc nie jest najlepsza, ale oto jest:
EDYTOWAĆ
Ponieważ wielu ludzi szuka czegoś takiego, stworzyłem klasę, która może sprawić, że inne widoki będą miały efekt falowania:
źródło
addRippleToView
dodawać efekt ripple. Raczej zrób każdy widok wRecyclerView
aRippleViewCreator
Czasami masz niestandardowe tło, w takich przypadkach lepszym rozwiązaniem jest użycie
android:foreground="?selectableItemBackground"
źródło
To jest bardzo proste ;-)
Najpierw musisz utworzyć dwa pliki do rysowania, jeden dla starej wersji interfejsu API, a drugi dla najnowszej wersji. Oczywiście! jeśli utworzysz plik do rysowania dla najnowszej wersji interfejsu API Android Studio sugeruje automatyczne utworzenie starego. i wreszcie ustaw to do rysowania na swój widok tła.
Przykład do rysowania dla nowej wersji API (res / drawable-v21 / ripple.xml):
Próbka do rysowania dla starej wersji API (res / drawable / ripple.xml)
Aby uzyskać więcej informacji na temat ripple drawable, odwiedź tę stronę: https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html
źródło
czasami będzie można użyć tej linii w dowolnym układzie lub komponentach.
Tak jak.
źródło