在 CardView 悬停时更改背景颜色

Change background color on hover of a CardView

我想在 Android Studio 中为我的 CardView 更改背景颜色,我想使用选择器,但我不知道该怎么做

这在我的代码中:

<androidx.cardview.widget.CardView
                android:id="@+id/card_ordina"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="15dp"
                app:cardBackgroundColor="@color/orange"
                app:cardCornerRadius="20dp">

                <ImageView
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_marginLeft="30dp"
                    android:layout_marginTop="20dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginBottom="40dp"
                    android:background="@drawable/options"
                    android:backgroundTint="#F44336"
                    android:padding="10dp"
                    android:src="@drawable/carrello"
                    android:tint="@color/background" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|center"
                    android:layout_marginBottom="5dp"
                    android:fontFamily="@font/title"
                    android:text="ORDINA"
                    android:textColor="@color/background"
                    android:textSize="18sp" />

            </androidx.cardview.widget.CardView>

您需要制作一个选择器并为您的 CardView 设置以下属性。

android:foreground="@drawable/card_foreground"
android:clickable="true"
android:focusable="true"

这是 card_foreground.xml 的代码,将其添加到项目的 drawable 文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="#e0F5AD6E"/>
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item android:state_focused="true" android:state_enabled="true">
        <shape android:shape="rectangle">
            <solid android:color="#0f000000"/>
            <corners android:radius="2dp" />
        </shape>
    </item>
</selector>

您可以根据需要更改状态颜色和半径。现在,当您单击 CardView 时,颜色将会改变。