10

我正在尝试获取它,以便我的列表视图项目被提升并显示阴影。

这是我的列表视图项目布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:translationZ="5dp"
android:cropToPadding="false">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView4"
    android:background="@color/background_white"
    android:layout_alignBottom="@+id/PostUpvote"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:translationZ="2dp"

     />

这是我的 ListView 布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_gravity="center_horizontal"
    android:background="@color/background_white"
    android:dividerHeight="10sp"
    android:translationZ="2dp"/>

任何帮助,将不胜感激。

4

1 回答 1

15

如果您的目标是 21 版,您可以使用

android:elevation="10dp"

如果没有,那么您可能需要自己在可绘制对象中创建阴影效果。例如,这个会在右侧和底部创建阴影。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

 <!-- Adding border layers simulating drop shadow -->
 <item>
    <shape>

        <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" />
        <solid android:color="#00494949" />
    </shape>
</item>

 <item>
    <shape>
        <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" />
        <solid android:color="#10494949" />
    </shape>
</item>

 <item>
    <shape>
        <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" />
        <solid android:color="#20494949" />
    </shape>
</item>

 <item>
    <shape>
        <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="0dp" />
        <solid android:color="#30494949" />
    </shape>
</item>

<item>
    <shape>
      <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        <solid android:color="#70494949" />
    </shape>
</item>

<item>
<shape>
        <solid android:color="@android:color/white" />
</shape>
</item>

将其保存在 drawable as 中my_drop_shadow.xml并在任何 View 中使用android:background="@drawable/my_drop_shadow"

您可以通过更改填充值来调整阴影方向,并通过控制透明度来添加高程效果。

于 2015-04-19T04:47:30.380 回答