У меня есть кнопка изображения, которая не реагирует сенсорной анимацией при нажатии, потому что это статическое изображение, в отличие от обычных кнопок на леденце, которые имеют встроенный эффект пульсации. Я хотел бы добавить к изображению эффект касания пульсации материального дизайна, но не могу найти способ его реализовать. Я могу установить цветной фильтр поверх изображения, но это не эффект ряби. Пример того, что я пытаюсь сделать, - это когда вы держите изображение обложки альбома в Google Play Music, и тень движется по изображению.
android
xml
android-5.0-lollipop
imagebutton
material-design
санический
источник
источник
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
(работает с <API 21). См. Stackoverflow.com/q/28605031/599535 для других решений.Вы можете просто добавить фон в свой ImageButton следующим образом:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/btn_dialog" android:background="?android:attr/selectableItemBackground" />
источник
Я получил хорошие ответы от i.shadrin ( здесь ) и Nicolars ( здесь ).
Разница между их ответами в том, что они
?attr/selectableItemBackgroundBorderless
могут дать вам ответandroid.view.InflateException
, так что?android:attr/selectableItemBackground
это решение.FWIW, я не знаю, почему происходит исключение, потому что первый ответ работал нормально во всех моих старых проектах, но в моем недавнем проекте нет (возможно, потому что тема приложения =
android:Theme.Material
?).Произошла странная вещь: хотя эффект ряби был показан, он выходил за пределы ImageButton, поэтому решение было таким:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
вместоandroid:background="?android:attr/selectableItemBackgroundBorderless"
Надеюсь, это поможет вам, если вы столкнетесь с тем же.
источник
Если у вас уже есть фон и вы не хотите его менять, используйте передний план;
<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"/>
источник