如何给listView这个阴影样式?

时间:2016-08-06 09:29:39

标签: android android-layout listview textview android-styles

我需要为列表视图提供阴影效果。

下面是我想要的图像。

scerrnshot

我的主要活动布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="com.jiq.sagar.javainterviewquestion.MainActivity">

<include layout="@layout/windows_title"
    android:id="@+id/include" />

<ListView
    android:layout_below="@+id/include"
    android:layout_width="wrap_content"
    android:id="@+id/listView"
    android:layout_alignParentLeft="true"
    android:background="#e4e3e6"
    android:clickable="false"
    android:divider="#9f9b9b"
    android:dividerHeight="2dp"
    android:focusableInTouchMode="true"
    android:choiceMode="singleChoice"
    android:layout_height="wrap_content"
    android:paddingRight="5dp"
    android:smoothScrollbar="true" />
 </RelativeLayout>

和我的textview,我从代码

动态设置
<?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingTop="10dip"
    android:paddingBottom="2dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="15dp"
    android:minHeight="50dp"
    android:textAlignment="center"
    android:textColor="#1e1d1d"
    android:textStyle="bold|italic"
    android:foregroundGravity="center_vertical|center_horizontal"
    android:paddingLeft="15dp" />

和我的代码我在哪里设置listview和textview

 ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.mytextview, mainList);
 listView.setAdapter(adapter);

请帮忙。感谢

3 个答案:

答案 0 :(得分:1)

将TextView放入CardView中。这不是影子效果,它是CardView。还要加上一些余量。

如果您不熟悉CardView,link可能对您有帮助。

在CardView中插入TextView后,您将无法直接使用ArrayAdapter来设置ListView。所以要做到这一点,你必须创建一个自定义适配器。您可以查看此link

答案 1 :(得分:1)

将此添加到您的textview android:elevation="4dp"

答案 2 :(得分:1)

<强>的build.gradle

dependencies {
    // CardView
    compile 'com.android.support:cardview-v7:23.3.+'
}

<强> XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="3dp"
        card_view:cardCornerRadius="4dp">


        <TextView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:foregroundGravity="center_vertical|center_horizontal"
            android:minHeight="50dp"
            android:paddingBottom="2dip"
            android:paddingLeft="15dp"
            android:paddingTop="10dip"
            android:textAlignment="center"
            android:textColor="#1e1d1d"
            android:textSize="15dp"
            android:textStyle="bold|italic" />


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

</LinearLayout>

希望这可以帮到你。你可以改变海拔的大小

android:elevation="3dp"