android - 我如何才能提升 ListView 项目?

标签 android android-listview android-elevation

我正在尝试获取它,以便提升我的 ListView 项并显示阴影。

Here is my list view item layout

<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"

     />

and here is my ListView layout

<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"/>

如有任何帮助,我们将不胜感激。

最佳答案

如果您的目标是版本 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 中将其保存为 my_drop_shadow.xml 并在具有 android:background="@drawable/my_drop_shadow" 的任何 View 中使用它

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

关于android - 我如何才能提升 ListView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29725855/

相关文章:

Android 波纹效应 + 非按钮 View 的高度

android - 对于具有基本 Activity 的工具栏,高程阴影不可见

java - 更改 EditText 背景颜色并保留下划线

android - Maven依赖解析问题

android - 如何在 listView 中显示固定行数

android - ListView 元素默认不可见

android - AppBarLayout 高度更改在 appCompat v24.0.0 上延迟

android - 在三星设备上播放 mp4 文件时出现 PVMFErrContentInvalidForProgressivePlayback 错误

java - 我想让 ViewPager 到达第 4 页时可见按钮,但出现空指针异常

android - ListView 重复 Android