我正在尝试为自定义按钮添加涟漪效果。但我找到的唯一解决方案是添加一个背景,我已经为实现该按钮的圆角而做了。现在我想添加涟漪效果。这是我的按钮标签到目前为止的样子:
<Button
android:text="PLAY"
android:id="@+id/button"
android:textSize="20dp"
android:layout_width="75dp"
android:layout_height="75dp"
android:background="@drawable/roundedbutton"
android:onClick="gotomainpage"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="200dp" />
答案 0 :(得分:5)
在按钮中使用此代码
android:foreground="?attr/selectableItemBackground"
答案 1 :(得分:2)
尝试添加android:foreground="@drawable/ripple"
<强>抽拉/ ripple.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/ripple_white">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
如果您希望涟漪最终成为圆圈,请使用此
<强>抽拉/ ripple_circle.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/ripple_white">
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
此方法需要最低API级别21或更高版本。
答案 2 :(得分:2)
简单
1。创建包含背景形状的波纹可绘制对象
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?colorControlHighlight"> //defaul ripple color
<item>
<shape //the background shape when it's not being click
android:shape="rectangle">
<solid
android:color="@color/colorPrimary" />
<corners
android:radius="32dp" />
</shape>
</item>
</ripple>
2。将Drawable应用于按钮并删除阴影
<Button
style="?borderlessButtonStyle" //remove the default shadow
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:background="@drawable/background_button" //here
android:text="Sign up"
android:textAllCaps="false"
android:textColor="@android:color/white" />