Тень ImageButton с прозрачным фоном

У меня есть кнопка ImageButton. Когда я добавил прозрачный фон, тень исчезла. Как это исправить без сторонних библиотек?

                <ImageButton
                android:id="@+id/player_activity_previous_button"
                android:background="@android:color/transparent"
                android:tint="@color/color_for_buttons"
                android:src="@drawable/ic_skip_previous_48"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:layout_toLeftOf="@id/player_activity_play_pause_button"
                android:layout_centerVertical="true"
                android:stateListAnimator="@null"
                android:elevation="4dp"
                android:translationZ="4dp"/>

Всего 2 ответа


Это нормально, потому что прозрачный объект не производит тень;)

Однако изменение фона ImageButton также изменит поведение фона.

Если вы хотите изменить только цвет, используйте

<ImageButton
    ...
    app:backgroundTint="@color/transparent"
/>

Вы можете использовать комбинацию cardView и imageView вместо imageButton с прозрачным фоном, но сначала добавьте зависимость в файл Gradle.

dependencies {
compile 'com.android.support:cardview-v7:23.0.1'
-------

}

<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="8dp"
card_view:cardBackgroundColor="@android:color/white">

<ImageView
    android:id="@+id/dish_image"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:adjustViewBounds="true" />

чтобы увеличить эффект тени, просто увеличьте высоту карты


Есть идеи?

10000