I want my Image Button to give it a ripple effect along with an elevation. My Image Button already has a 6dp resting elevation, but I am not getting a ripple effect. Below is my code. Can anyone tell what is the error?
<ImageButton
android:id="@+id/share_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="12dp"
android:background="@drawable/ripples_on_touch"
android:elevation="6dp"
android:padding="14dp"
android:src="@drawable/ic_share_white_24dp"
android:stateListAnimator="@animator/lift_on_touch"
app:borderWidth="0dp"
tools:targetApi="lollipop" />
v21/lift_on_touch.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="12dp"
android:valueType="floatType"
/>
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="0dp"
android:valueType="floatType"
/>
</item>
</selector>
v21/ripples_on_touch.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="oval">
<solid android:color="#757575"/>
</shape>
</item>
</ripple>
Please help me.
As you are using android:state_pressed="true"
in your v21/lift_on_touch.xml
file, make the ImageButton clickable.
Like this
<ImageButton
android:id="@+id/share_fab"
....
....
android:stateListAnimator="@animator/lift_on_touch"
android:clickable="true" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With