在ImageButton

时间:2016-05-04 17:09:07

标签: android android-5.0-lollipop android-elevation

我正在尝试在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背景:

我需要的是圆形纹波背景和高度同时

2 个答案:

答案 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"/>

enter image description here