0

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

<?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() {
//. . .
});

}
}

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

4

2 回答 2

2

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

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

您的列表行可能隐藏了背景图像。还添加:

getListView().setCacheColorHint(android.R.color.transparent);
于 2012-05-05T13:19:21.257 回答
0

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

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

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

每当您使用 ListActivity 时,它都有 ID 为“list”的 ListView。

于 2012-05-05T13:18:52.730 回答