Применить материал Дизайн сенсорный пульсации к ImageButton?
У меня есть imagebutton, который не реагирует на сенсорную анимацию при нажатии, потому что это статическое изображение в отличие от обычных кнопок на леденце, которые поставляются со встроенным эффектом пульсации. Я хотел бы добавить эффект прикосновения к изображению material design ripple, но не могу найти способ его реализовать. Я могу установить цветовой фильтр над изображением, но это не эффект пульсации. Пример того, что я пытаюсь сделать, - это когда вы держите изображение обложки альбома в Google Play Music и тень рябь движется по изображению.
4 ответа:
для еще лучшего результата:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_button" android:background="?attr/selectableItemBackgroundBorderless" />
вы можете просто добавить фон к вашему ImageButton следующим образом:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/btn_dialog" android:background="?android:attr/selectableItemBackground" />
я получил хорошие ответы от и. Шадрина (здесь) и Николай (здесь).
разница между их ответами заключается в том, что
?attr/selectableItemBackgroundBorderless
может дать вамandroid.view.InflateException
, Так что?android:attr/selectableItemBackground
это решение.FWIW, я не знаю, почему происходит исключение, потому что первый ответ отлично работал во всех моих старых проектах, но в моем недавнем проекте нет (может быть, потому что тема приложения =
android:Theme.Material
?).странная вещь, которая происходила в том, что хотя эффект пульсации был показан, он выходил за пределы ImageButton, поэтому решение:
- использовать
android:foreground="?android:attr/selectableItemBackgroundBorderless"
вместоandroid:background="?android:attr/selectableItemBackgroundBorderless"
надеюсь, что это поможет вам, если вы столкнулись с тем же.