Saya ingin mengatur efek riak pada tampilan teks dan tampilan gambar di Android Studio. Bagaimana saya bisa melakukannya?
Saya ingin mengatur efek riak pada tampilan teks dan tampilan gambar di Android Studio. Bagaimana saya bisa melakukannya?
Jawaban:
Ref: http://developer.android.com/training/material/animations.html ,
http://wiki.workassis.com/category/android/android-xml/
<TextView
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
<ImageView
.
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbc
Jika Anda ingin riak dibatasi ke ukuran penggunaan TextView / ImageView:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(Saya pikir itu terlihat lebih baik)
selectableItemBackground
vsselectableItemBackgroundBorderless
Silakan merujuk jawaban di bawah ini untuk efek riak.
riak di Textview atau lihat:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
riak pada Tombol atau Imageview:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
API 21+. Di bawah ini Anda dapat memilih selectableItemBackground
untuk menghindari masalah kompatibilitas
Anda dapat menggunakan android-ripple-background
Mulai Efek
final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rippleBackground.startRippleAnimation();
}
});
Hentikan animasi:
rippleBackground.stopRippleAnimation();
<TextView
android:id="@+id/txt_banner"
android:layout_width="match_parent"
android:text="@string/banner"
android:gravity="center|left"
android:layout_below="@+id/title"
android:background="@drawable/ripple_effect"
android:paddingLeft="15dp"
android:textSize="15sp"
android:layout_height="45dp" />
tambahkan ini ke dalam drawable
<?xml version="1.0" encoding="utf-8"?>
<!--this ribble animation only working for >= android version 21-->
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/click_efect" />
coba ini.
coba ini. Ini berhasil untuk saya.
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
Selain jawaban di atas ditambahkan fokus untuk menghindari peringatan editor UI
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
Dalam hal solusi yang dipilih dengan baik diposting oleh @Bikesh M Annur (di sini ) tidak bekerja untuk Anda, coba gunakan:
<TextView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
<ImageView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
Juga, saat menggunakan android:clickable="true"
add android:focusable="true"
karena:
" Widget yang dinyatakan dapat diklik tetapi tidak dinyatakan sebagai fokus tidak dapat diakses melalui keyboard. "
Menambahkan
android:clickable="true"
android:focusable="true"
Untuk Efek Riak
android:background="?attr/selectableItemBackgroundBorderless"
Untuk Efek yang Dapat Dipilih
android:background="?android:attr/selectableItemBackground"
Untuk efek Tombol
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
Selain jawaban @Bikesh M Annur, pastikan untuk memperbarui perpustakaan dukungan Anda. Sebelumnya saya menggunakan 23.1.1 dan tidak ada yang terjadi. Memperbarui ke 23.3.0 berhasil.
untuk riak lingkaran:
android:background="?attr/selectableItemBackgroundBorderless"
untuk riak persegi panjang:
android:background="?attr/selectableItemBackground"
Atau Anda dapat mencoba menggunakan perpustakaan ini (android 9+): RippleEffect
Integrasi
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
Pemakaian:
<com.andexert.library.RippleView
android:id="@+id/more"
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:layout_toLeftOf="@+id/more2"
android:layout_margin="5dp"
rv_centered="true">
<ImageView
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:src="@android:drawable/ic_menu_edit"
android:layout_centerInParent="true"
android:padding="10dp"
android:background="@android:color/holo_blue_dark"/>
</com.andexert.library.RippleView>
selectableItemBackground
saat menargetkan Android 4 dan di atasnya.
Cara terbaik menambahkannya:
<ImageView
android:id="@+id/ivBack"
style="?attr/actionButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@drawable/ic_back_arrow_black"
android:tint="@color/white" />
Menggunakan perpustakaan. Ini salah satunya. Cukup tambahkan ketergantungannya dan letakkan kode di bawah ini dalam xml sebelum setiap elemen yang membutuhkan efek riak:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">