Latar Belakang
Pada aplikasi dialer Android, saat Anda mulai mencari sesuatu, dan Anda mengklik tombol panah di sebelah kiri EditText, Anda mendapatkan efek riak melingkar:
Masalah
Saya sudah mencoba memilikinya juga, tapi saya punya yang persegi panjang:
<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"/>
Pertanyaan
Bagaimana cara membuat tombol memiliki efek riak melingkar saat diklik? Apakah saya harus membuat drawable baru, atau adakah cara bawaan untuk itu?
android
button
rippledrawable
pengembang android
sumber
sumber
Jawaban:
Jika Anda sudah memiliki gambar latar belakang, berikut adalah contoh riak yang terlihat dekat dengan selectableItemBackgroundBorderless:
ic_filter_state.xml:
state_pressed_ripple.xml: (opacity diatur ke 10% pada latar belakang putih) 1AFFFFFF
sumber
Jika Anda menggunakan tema AppCompat, Anda dapat menyetel latar belakang tampilan sebagai:
Ini akan menambah riak melingkar pada 21 ke atas dan latar belakang persegi di bawah 21.
sumber
android:clipChildren="false"
dalam tata letak untuk memungkinkan animasi menyebar.Atribut lain dengan efek riak bulat, khususnya untuk bilah tindakan:
UPD : Warna riak dapat diubah dengan atribut ini:
Namun perlu diingat, atribut ini berlaku untuk semua efek riak default.
sumber
?
adalah jalan pintas untuk?attr/
Membuat dan menyetel drawable riak sebagai latar belakang. Sesuatu seperti ini.
sumber
Tambahkan saja latar belakang ini ke tampilan Anda
android:background=?android:attr/actionBarItemBackground
sumber
Anda dapat membuat drawable riak lingkaran menggunakan
android:radius
atribut dalam xml.Contoh:
Perhatikan, bahwa Anda
your_radius
harus kurang dari lebar dan tinggi tampilan Anda. Misalnya: jika Anda memiliki view dengan ukuran60dp x 60dp
your_radius
harus dekat30dp
(lebar / 2 atau tinggi / 2).sumber
Jika Anda ingin lebih banyak file XML umum, saya punya dua file:
1) btn_ripple_background dengan kode:
2) ripple_circuler_shape dengan kode:
akhirnya penggunaan:
android:foreground="@drawable/ripple_btn_background"
sumber
Jika Anda menginginkan efek riak yang tidak akan melewati batas lingkaran, Anda dapat memeriksa kode ini. Ini bekerja untuk saya dengan sempurna. Ingat saja, Anda harus memberikan id = @ android: id / mask di ripple_blue.xml
ripple_blue.xml
color.xml
sumber
Mencoba:
sumber
tambahkan saja item ini di
sumber
Di Kotlin / Java, Anda dapat melakukan hal berikut
sumber