如何为Android ListView背景设置单个图像?

时间:2012-05-05 13:14:25

标签: android background android-listview

我已将此代码用于行布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:background="@drawable/bckimage"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:padding="10dp"
   android:textSize="16sp" >
</TextView>

这适用于构建列表的类:

public class ListTestActivity extends ListActivity {


@Override
public void onCreate(Bundle savedInstanceState) {
    String[] myArray = new String[] {...};

    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.listlayout,myArray));

    ListView listView = getListView();
    listView.setCacheColorHint(0);
    listView.setBackgroundResource(R.drawable.bckimage);
    listView.setTextFilterEnabled(true);


    listView.setOnItemClickListener(new OnItemClickListener() {
//. . .
});

}
}

这显示每行的图像,而不是整个背景。如何为背景添加单个图像?我在这里看到了几种方法,但没有任何效果。

2 个答案:

答案 0 :(得分:2)

将图像设置为ListView元素的背景:

getListView().setBackgroundResource(R.drawable.bckimage);

您的列表行可能隐藏背景图片。另外添加:

getListView().setCacheColorHint(android.R.color.transparent);

答案 1 :(得分:0)

如您所述,将背景设置为列表而不是行布局。

您可以通过以下方式将背景设置为列表:

((ListView)findViewById(android.R.id.list)).setBackgroundResource(R.drawable.bckimage);

每当您使用ListActivity时,它都具有带有ID&#34; list&#34;的ListView。