5

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

我需要的是同时有一个圆形波纹背景和高程

4

2 回答 2

1

像阴影一样,无边界的涟漪会投射到最近的父表面上——这意味着它们不能投射阴影。考虑改用带边框的波纹:

android:background="?attr/selectableItemBackground"
于 2016-05-06T18:22:39.177 回答
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"/>

在此处输入图像描述

于 2021-08-02T17:03:25.210 回答