2012-08-23 105 views
2

如何創建一個GirdView,其中的圖像是矩形(120 x 58.5),這會導致非方形單元格?目前,如果我有這樣的XML佈局有空白上面和下面的圖片,因爲電池是120×120的每個單元格的寬度應爲120,高度58GridView中的矩形圖像

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/AppsOverviewGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:columnWidth="120dp" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="0dp" 
    android:horizontalSpacing="8dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"> 
</GridView> 

感謝您的幫助。

回答

2

在我看來,理想的解決方案是爲gridview佈局中的項目創建佈局文件,您可以在其中指定圖像的高度(使用ImageView)。然後,您可以使用帶有LayoutInflater的自定義適配器將您的網格視圖項目與主佈局相連接。

以下是一個(例如2)一個大的教程:http://www.mkyong.com/android/android-gridview-example/

+0

謝謝!一些試驗和錯誤我得到了我想要的東西。 – Caroline

+0

非常歡迎。很高興看到我的回答很有幫助。 –

0

這個最簡單的形式給出的只是設置在適配器的imageview的的寬度和高度。

public class ImageAdapter extends BaseAdapter { 

// create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(120, 58)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageResource(pictureArray[position]); 

     return imageView; 
    } 

    // references to our images 
    private Integer[] pictureArray= { 
      R.drawable.pic1, R.drawable.pic2, 
    } 

} 

然後將Adapter設置爲gridview。

GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this));