Android Listview项目阴影效果

时间:2018-01-27 22:15:50

标签: android xml listview 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

1 个答案:

答案 0 :(得分:0)

您可以使用此链接提供的帮助 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>