2012-05-05 34 views
0

我已經使用這個代碼行佈局:如何爲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

設置圖片爲背景的ListView元素來代替:

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

你的列表行可能隱藏背景圖像。另請加:

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

仍然有同樣的問題:( – Grant

+0

@Grant我已更新我的答案是 – Luksprog

+0

是的......我測試過了,但結果沒有變化,它顯示每個原始圖像...無論如何感謝您的幫助! – Grant

0

如您所述,將背景設置爲列表而不是行佈局。

您可以按以下方式設置背景到您的列表:

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

每當你使用ListActivity,它有ID爲「列表」的ListView。

+0

請問您能解釋一下嗎?我剛剛開始學習Android編程... – Grant

+0

您不僅僅使用「Activity」..您使用「ListActivity」..因此,在ListActivity中,您已經擁有帶List ID的ListView ..在該列表中,您添加列出你有提及佈局的項目..並且你將bg設置爲行佈局而不是ListView ..所以從行佈局中刪除bg並將bg添加到ListView .. – Veer