Hintergrund
Wenn Sie in der Dialer-App von Android nach etwas suchen und auf die Pfeilschaltfläche links neben dem EditText klicken, wird ein kreisförmiger Welleneffekt angezeigt:
Das Problem
Ich habe versucht, es auch zu haben, aber ich habe ein rechteckiges:
<ImageButton
android:id="@+id/navButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/search_ic_back_arrow"/>
Die Frage
Wie kann ich dafür sorgen, dass die Schaltfläche beim Klicken einen kreisförmigen Welleneffekt hat? Muss ich ein neues Zeichen erstellen oder gibt es dafür einen eingebauten Weg?
android
button
rippledrawable
Android-Entwickler
quelle
quelle
Antworten:
Wenn Sie bereits ein Hintergrundbild haben, finden Sie hier ein Beispiel für eine Welligkeit, die in der Nähe von selectableItemBackgroundBorderless liegt:
ic_filter_state.xml:
state_pressed_ripple.xml: (Deckkraft auf 10% auf weißem Hintergrund eingestellt) 1AFFFFFF
quelle
Wenn Sie das AppCompat-Design verwenden, können Sie den Hintergrund der Ansicht wie folgt festlegen:
Dies fügt kreisförmige Welligkeit bei 21 und darüber und quadratischen Hintergrund bei unter 21 hinzu.
quelle
android:clipChildren="false"
in den Layouts verwenden, damit sich die Animation verbreiten kann.Ein weiteres Attribut mit rundem Welleneffekt, speziell für die Aktionsleiste:
UPD : Die Welligkeitsfarbe kann durch dieses Attribut geändert werden:
Beachten Sie jedoch, dass dieses Attribut für alle Standard-Welligkeitseffekte gilt.
quelle
?
ist Abkürzung für?attr/
Erstellen Sie eine Welligkeit, die als Hintergrund gezeichnet werden kann, und legen Sie sie fest. Etwas wie das.
quelle
Fügen Sie diesen Hintergrund einfach Ihrer Ansicht hinzu
android:background=?android:attr/actionBarItemBackground
quelle
Sie können eine Kreiswelligkeit erstellen, die mit dem
android:radius
Attribut in XML gezeichnet werden kann.Beispiel:
Achten Sie darauf, dass Sie
your_radius
kleiner als Ihre Ansichtsbreite und -höhe sein sollten. Zum Beispiel: Wenn Sie eine Ansicht haben, deren Größe60dp x 60dp
your_radius
nahe sein sollte30dp
(Breite / 2 oder Höhe / 2).quelle
Wenn Sie allgemeinere XML-Dateien wünschen, habe ich zwei Dateien:
1) btn_ripple_background mit Code:
2) ripple_circuler_shape mit Code:
endlich die verwendung:
android:foreground="@drawable/ripple_btn_background"
quelle
Versuchen:
quelle
Wenn Sie einen Welleneffekt wünschen, der die Kreisgrenze nicht überschreitet, können Sie diesen Code überprüfen. Es funktioniert perfekt für mich. Denken Sie daran, Sie müssen id = @ android: id / mask in ripple_blue.xml angeben
ripple_blue.xml
color.xml
quelle
Fügen Sie diesen Artikel einfach in Ihre
quelle
In Kotlin / Java können Sie Folgendes tun
quelle