在Android中将背景图片添加到listview?

时间:2011-08-17 00:54:58

标签: android android-layout

我正在尝试将背景图片添加到我的应用中的listActivity。但是,使用我使用的代码时,背景图像显示在每一行而不是整个列表中。

这是xml文件:

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

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/qbg1"/>

<TextView
    android:id="@+id/employeeID"
    android:layout_width="50px"
    android:layout_marginRight="20px"
    android:layout_height="wrap_content"
    android:textColor="@color/textColor"/>

<TextView
    android:id="@+id/employeeName"
    android:layout_width="wrap_content"
    android:layout_marginRight="10px"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/employeeID"
    android:textColor="@color/textColor"/>


</RelativeLayout>
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/qbg1"/>

向活动添加背景图片的最佳方法是什么?我更喜欢在XML文件中而不是以编程方式。

3 个答案:

答案 0 :(得分:9)

我通过将图像背景添加到主视图然后在该视图中添加listView来解决了这个问题。

所以这是我的main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="4px"
android:background="@drawable/qbg"> 

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
             android:cacheColorHint="#00000000"/> //This is to fix disappearing background issue
</RelativeLayout>

这是我的listView.xml

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

<TextView
android:id="@+id/employeeID"
android:layout_width="50px"
android:layout_marginRight="20px"
android:layout_height="wrap_content"
android:textColor="@color/textColor"/>

<TextView
android:id="@+id/employeeName"
android:layout_width="wrap_content"
android:layout_marginRight="10px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/employeeID"
android:textColor="@color/textColor"/>

</RelativeLayout>

希望这对其他人有益。

答案 1 :(得分:2)

我已经用这样的东西来达到这个效果。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/paper"
>
<ExpandableListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:fadingEdge="vertical"
android:fadingEdgeLength="10dip"
android:scrollingCache="false"


>
</ExpandableListView>
</RelativeLayout>

我记得我必须调整一些设置,以便在列表滚动时背景保持可见。

答案 2 :(得分:2)

您是否尝试在代码中设置图片,请尝试此getListView().setBackgroundResource(R.drawable.matchback);