Saya memiliki tombol gambar yang tidak merespons dengan animasi sentuh saat diklik karena ini adalah gambar statis tidak seperti tombol biasa pada permen lolipop yang dilengkapi dengan efek riak bawaan. Saya ingin menambahkan efek sentuhan riak desain material ke gambar tetapi tampaknya tidak dapat menemukan cara untuk menerapkannya. Saya dapat menyetel filter warna di atas gambar, tetapi itu bukan efek riak. Contoh dari apa yang saya coba lakukan adalah saat Anda memegang gambar sampul album di Google Play Musik dan riak bayangan bergerak di seluruh gambar.
96
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
(bekerja pada <API 21). Lihat stackoverflow.com/q/28605031/599535 untuk solusi lainnya.Anda bisa menambahkan latar belakang ke ImageButton Anda seperti ini:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/btn_dialog" android:background="?android:attr/selectableItemBackground" />
sumber
Saya mendapat jawaban bagus dari i.shadrin (di sini ) dan Nicolars (di sini ).
Perbedaan antara jawaban mereka adalah yang
?attr/selectableItemBackgroundBorderless
dapat memberi Andaandroid.view.InflateException
, jadi?android:attr/selectableItemBackground
solusinya.FWIW, saya tidak tahu mengapa pengecualian terjadi, karena jawaban pertama berfungsi dengan baik di semua proyek lama saya, tetapi di proyek terbaru saya tidak (mungkin karena tema aplikasi =
android:Theme.Material
?).Hal aneh yang terjadi adalah bahwa meskipun efek riak ditampilkan, itu melampaui ImageButton, jadi solusinya adalah:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
alih - alihandroid:background="?android:attr/selectableItemBackgroundBorderless"
Semoga membantu Anda jika Anda menghadapi hal yang sama.
sumber
Jika Anda sudah memiliki latar belakang dan tidak ingin mengubahnya, gunakan latar depan;
<ImageButton android:layout_width="60dp" android:layout_height="match_parent" android:background="@drawable/preview_in_4k_background" android:src="@drawable/ic_full_screen_24px" android:layout_marginLeft="5dp" android:foreground="?attr/selectableItemBackgroundBorderless" android:layout_column="2"/>
sumber