Android 列表视图项目阴影效果

Android Listview Item Shadow Effect

我一直在尝试创建列表视图项目自定义背景资源,以便为我的项目创建阴影效果。 唯一的问题是我被这些烦人的黑角困住了(见下图)。 我没有在任何地方使用 'radius' 属性,并且我已经为我的列表视图项目周围的所有相关项目分配了白色背景色。 不知道这些黑角是从哪里来的。 按照我的 xml 项目代码:

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--shadow to bottom and right-->
    <!--by pushing offset from top and left-->
    <item
        android:left="0dp"
        android:right="2dp"
        android:top="2dp"
        android:bottom="0dp">
        <shape
            android:shape="rectangle">
            <solid android:color="@android:color/darker_gray" />
        </shape>
    </item>
    <!--foreground-color to cover over non-shadow-->
    <!--need to also offset in opposite direction-->
    <item
        android:left="2dp"
        android:right="0dp"
        android:top="0dp"
        android:bottom="2dp">
        <shape
            android:shape="rectangle">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>
</layer-list>

Black corners, exactly matching offsets in xml resource

您可以使用此 link 中的帮助 https://developer.android.com/training/material/shadows-clipping.html 或者您可以为此目的使用 CardView:

编译'com.android.support:cardview-v7:26.0.0'

        <android.support.v7.widget.CardView
         android:id="@+id/card_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         app:cardCornerRadius="2dp"
         app:cardElevation="2dp"
         app:cardPreventCornerOverlap="false"
         app:contentPadding="0dp">

        <!-- add you views or other stuff here -->

        </android.support.v7.widget.CardView>