在Listview的List项的底部添加阴影

时间:2014-04-08 12:06:26

标签: android listview android-listview shadow

我想在我的ListView项目底部添加阴影!! 我尝试了paddingEdageLenght,但没有发生任何变化! 我添加了圆形边,但我无法在项目下面添加阴影

这是我的列表项xml文件

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fadingEdgeLength="5sp" >

    <ImageView 
        android:id="@+id/site_image"
        android:layout_height="50dp"
        android:layout_width="65dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_margin="10dp"/>

    <TextView 
        android:id="@+id/site_name"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@id/site_image"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:textSize="20sp"/>

    <TextView 
        android:id="@+id/site_description"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@id/site_name"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@id/site_image"
        android:textSize="15sp"/>


</RelativeLayout>

这是我的ListView xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/near_sites"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"
        android:fadingEdgeLength="5sp"
        android:dividerHeight="10sp"
        android:divider="@android:color/transparent" />

</RelativeLayout>

任何帮助?

3 个答案:

答案 0 :(得分:6)

list_view_item中,在RelativeLayout之后添加虚拟视图,并将它们全部包装在垂直LinearLayout中,如下所示:

<LinearLayout
         android:orientation="vertical">

    <RelativeLayout>
        ...
        ...
    </RelativeLayout>

    <View
        android:id="@+id/shadow"
        android:layout_width="fill_parent"
        android:layout_height="3dp" <!--or your needed height value-->
        android:background="@drawable/shadow_drawable">     
    </View>

</LinearLayout>

并在drawable文件夹中添加新的shadow_drawable.xml并将其放在其中

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android”>    
    <gradient
        android:startColor="@color/#000000" <!--black-->
        android:endColor="@color/#FFFFFF" <!--white-->
        android:angle="90" <!-- angle of the gradient-->
        >
    </gradient>
</shape>

答案 1 :(得分:1)

你必须在listview中添加页脚视图,

如何添加页脚视图检查波纹管代码,

private View footerView;
footerView = ((LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.listview_footer, null, false);
ListView.addFooterView(footerView);

所以,你能做什么,在页脚视图中。

答案 2 :(得分:0)

你可以为带有阴影效果的边框制作9补丁图像。

在“res / drawable”中创建一个名为“border.xml”的新drawable资源文件,并编写以下代码 -

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape
            android:shape="rectangle">
            <gradient android:startColor="#ddd" android:endColor="#555" android:type="linear" />
            <corners android:radius="0dp"/>
        </shape>
    </item>
    <item android:right=".5dp" android:left=".5dp" android:bottom="2dp" android:top=".5dp">
        <shape
            android:shape="rectangle">
            <solid android:color="@android:color/white"/>
            <corners android:radius="0dp"/>
        </shape>
    </item>
</layer-list>

只需将android:background="@drawable/border"放在要应用边框的位置。

您可以更改android:rightandroid:leftandroid:topandroid:bottom,以便为边框指定尺寸。您也可以在android:shape中进行更改以获得更多效果。

希望对你有所帮助!