我正在尝试在ImageButton上同时设置高程和涟漪效果。 我正在运行LOLLIPOP。
以下是代码:
<android.support.v7.widget.AppCompatImageButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="5dp"
android:background="?attr/selectableItemBackgroundBorderless"
app:srcCompat="@drawable/add" />
我的主题是:Theme.AppCompat.Light.DarkActionBar
使用此代码我只能得到涟漪。 如果我删除背景(波纹),我会升高。
编辑:
注意:所有截图都是在点击图像的情况下拍摄的(长按)。
我已经使用android:background="?attr/selectableItemBackground"
进行了测试,我得到了一个波纹,背景是正方形,但没有高程:
android:background="?attr/selectableItemBackgroundBorderless"
我的圆形背景有波纹,但没有高程:
没有背景属性我得到了高程,默认的ImageButton
背景:
我需要的是圆形纹波背景和高度同时。
答案 0 :(得分:1)
与阴影一样,无边框涟漪投射到最近的父曲面上 - 这意味着它们无法投射阴影。请考虑使用带边界的纹波:
android:background="?attr/selectableItemBackground"
答案 1 :(得分:0)
现在已经五年了,但我重新审视了这个问题,一个解决方案是使用 foreground
而不是 background
:
<ImageButton
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:elevation="5dp"
android:foreground="?attr/selectableItemBackgroundBorderless"
android:src="@mipmap/ic_launcher"/>