2014-03-25 75 views
0

我想在GridView中顯示ImageButtons。目前我正在使用RelativeLayoutxml格網視圖android

這裏是我的XML代碼:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 


    <RelativeLayout 
    android:id="@+id/RelativeLayout01" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.easy.convert.MainActivity" > 

    <ImageButton 
     android:id="@+id/btnbitsbytes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="25dp" 
     android:background="#00000000" 
     android:gravity="center" 
     android:src="@drawable/btnbitsbytes" /> 

    <ImageButton 
     android:id="@+id/btnmassweight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/btnbitsbytes" 
     android:layout_below="@+id/btnbitsbytes" 
     android:layout_marginTop="14dp" 
     android:background="#00000000" 
     android:src="@drawable/btnmassweight" /> 

    <ImageButton 
     android:id="@+id/ButtonConvert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/btnmassweight" 
     android:layout_below="@+id/btnmassweight" 
     android:layout_marginTop="14dp" 
     android:background="#00000000" 
     android:src="@drawable/btnlength" /> 

    <ImageButton 
     android:id="@+id/imageButton3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/ButtonConvert" 
     android:layout_below="@+id/ButtonConvert" 
     android:layout_marginTop="14dp" 
     android:background="#00000000" 
     android:src="@drawable/btntemperature" /> 

    <ImageButton 
     android:id="@+id/imageButton4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/imageButton3" 
     android:layout_below="@+id/imageButton3" 
     android:layout_marginTop="15dp" 
     android:background="#00000000" 
     android:src="@drawable/btndistance" /> 

    <ImageButton 
     android:id="@+id/imageButton5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/imageButton4" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="22dp" 
     android:background="#00000000" 
     android:src="@drawable/btnaboutus" /> 

    </RelativeLayout> 
</ScrollView> 

我不知道如何使用GridView控件或任何其他佈局,但我想我的佈局是這個樣子:

enter image description here

回答

0

你不需要ScrollViewGridView。 gridview小部件有自己的滾動檢測,它可以干擾scrollview滾動。我建議你一些事情來實現你想要的東西,儘量把你的滾動型TableLayout內,這將是更適應:

<ScrollView ... > 
    <RelativeLayout ... > 
     <TableLayout ...> 
      <TableRow> 
       <ImageButton> 
       <ImageButton> 
       <ImageButton> 
      </TableRow> 
      <TableRow> 
       <ImageButton> 
       <ImageButton> 
       <ImageButton> 
      </TableRow> 
      <TableRow> 
       <ImageButton> 
       <ImageButton> 
       <ImageButton> 
      </TableRow> 
    </RelativeLayout> 
</ScrollView> 

或者你也可以加3個LinearLayout S和設置的weight屬性每個孩子1,您的佈局將類似的東西:

<ScrollView ... > 

    <RelativeLayout ... > 

     <LinearLayout ... 
      android:orientation="horizontal" 
      android:weightSum="3" > 

      <ImageButton ... 
       android:layout_weight="1" /> 

      <ImageButton ... 
       android:layout_weight="1" /> 

      <ImageButton ... 
       android:layout_weight="1" /> 

     </LinearLayout> 

    <RelativeLayout> 

</ScrollView> 

weightSum設置爲3表示列數在的LinearLayout和layout_weight表明,每個孩子將填補1山坳UMN。

但是,如果你絕對要一個GridView,你需要這樣的佈局:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:columnWidth="90dp" 
    android:numColumns="auto_fit" 
    android:stretchMode="columnWidth" /> 

您還需要一個Adapter裏面顯示您的影像。您應該閱讀以下主題:GridView但是GridView不允許有像你的Button「關於我們」一樣的頁腳視圖 ..
要保持按鈕「關於我們」最後,你需要一個自定義的適配器爲你的gridview,也許這個將幫助你:HFGridView - 它的工作原理就像addFooterViewListView

+0

謝謝..這段代碼看起來很簡單:p我正在嘗試這個.. – Tanmay

+0

正如我在截圖中看到的那樣,當你只有9個圖像時,我會更容易和更適合使用tablelayout而不是gridview。 ;) – Fllo

+0

沒有其他的我想增加更多的圖像(選項)。 TableLayout會產生不同屏幕尺寸的問題..? – Tanmay