2011-12-05 29 views
1

我有一個Gridview在那裏我有,我從url得到許多圖像。我加入他們都一個Arraylist並設置ArraylistGridview。我已經使用背景上項目點擊收聽的Android

grid.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
              //my code here 

            } 

所以,現在當我GridView項目,請點擊我避開每個網格項目的邊框。我可以改變邊框的顏色嗎?

回答

1

當然可以。在網格項目的佈局中,您可以將背景可繪製設置爲選擇器。 http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList您可以設定該項目的每個狀態(壓,突出重點,默認等)對應於任何你想要的顏色(或繪製)。將邊框作爲自定義drawable是最容易的。無論是形狀還是9貼片。

+0

如果我不希望任何邊界? –

+0

您可以以任何想要的方式製作可繪製的外觀。有了邊框,沒有邊框,純色,透明,漸變,位圖,什麼都可以。選擇者基本上將資源與你指定的狀態交換。這一切都是用XML完成的。 – Andrew

+0

如果這能解決您的問題,請將我的答案標記爲正確。 – Andrew

3

看看這個例子

RES /繪製/ border.xml

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <stroke android:width="2dp" android:color="@color/green"/> 
    <solid android:color="@android:color/transparent"/> 

RES /繪製/ grid_item_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@drawable/border" /> 
<item android:drawable="@android:color/transparent"/> 
</selector> 

現在GridView的使用是財產android:listSelector="@drawable/grid_item_selector"

in main.xml

 <GridView android:id="@+id/gridview" 
         android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
         android:numColumns="auto_fit" 
        android:columnWidth="90dp" 
         android:stretchMode="columnWidth" 
         android:gravity="center" 
        android:horizontalSpacing="-1px" 
         android:verticalSpacing="-1px" 
        android:drawSelectorOnTop="true" 
        android:listSelector="@drawable/grid_item_selector"/>