1. 程式人生 > >Android控制元件GridView實現分割線

Android控制元件GridView實現分割線

大家都知道Android ListView設定分割線很簡單,設定如下兩個屬性即可:

    android:divider
    android:dividerHeight

GirdView預設是沒有網格線的,那麼該如何設定呢?

現介紹兩種方法:

第一、設定垂直、橫向間距,通過GridView和item的背景色來實現 

效果圖: 

實現方法:

             1、設定GridView背景色。

             2、設定水平和豎直方向間隔:android:horizontalSpacing和android:verticalSpacing。

             3、設定GridView的item的背景色及其選中後的顏色。

程式碼:

 GridView佈局:

<GridView
        android:id="@+id/gridView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="30dp"
        android:background="#999999"
        android:horizontalSpacing="2dp"
        android:verticalSpacing="2dp"
        android:padding="2dp"
        android:numColumns="3" >

item佈局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:background="@drawable/gv_one_selector"
    >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:padding="10dp"
        android:text="TextView" />

</LinearLayout>


item的選擇器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_selected="true" >
        <shape android:shape="rectangle">  
             <solid 
              android:color="#CCCCCC" 
             />
        </shape>
    </item>
    <item 
        android:state_pressed="true" >
        <shape android:shape="rectangle">  
             <solid 
              android:color="#CCCCCC" 
             />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">  
            <solid 
              android:color="#FFFFFF" 
             /> 
        </shape>
    </item>  
</selector>


至此第一種方法結束。

第二、設定選擇器

效果圖:

                    

方法:設定item的選擇器

程式碼:gv_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_selected="true" >
        <shape android:shape="rectangle">  
             <solid 
              android:color="#CCCCCC" 
             />
             <stroke android:width="1.0px" android:color="#999999" />
        </shape>
    </item>
    <item 
        android:state_pressed="true" >
        <shape android:shape="rectangle">  
             <solid 
              android:color="#CCCCCC" 
             />
             <stroke android:width="1.0px" android:color="#999999" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">  
            <stroke android:width="1.0px" android:color="#999999" />  
        </shape>
    </item>  
</selector>

至此兩種方法已經寫完了,有細心的朋友可能會發現第二種方法的中間的網格線比邊線要粗兩倍,這也是第二種方法的一個不足的地方。

對於本篇部落格若有不足的地方請您批評指正,若您有更好的方法請留言討論,謝謝!