2012-12-17 135 views
1

我有一個gridView,每個項目都有一個要加載的圖片。我用適配器來渲染圖像。我使用使用可繪製文件夾中的圖像創建的資源ID陣列將圖像分配爲gridView項目。GridView中只顯示12張圖片

問題是gridView顯示只有12個圖像(這適合沒有滾動視圖)。我在該陣列中有大約40個圖像資源ID。 getView僅被調用12-13次。

你能否幫助我如何在網格視圖中顯示所有40個圖像?我需要在grid.xml中顯式添加scrollpane嗎?

下面是grid.xml佈局

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:background="@drawable/wooden_background" 
     android:id="@+id/RootView"> 
     <GridView 
      android:id="@+id/gridView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numColumns="3" 
      android:stretchMode="columnWidth" 
      android:padding="5dp" 
      android:verticalSpacing="5dp" 
      android:horizontalSpacing="5dp" 
      android:gravity="center" 
      android:maxWidth="150dip" 
      android:maxHeight="150dip" > 

     </GridView> 

    </LinearLayout> 

下面是內部適配器getView功能

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View vi; 
    if (convertView == null){ // if it's not recycled, initialize some attributes 
     vi = inflater.inflate(R.layout.each_image,parent, false); 
    } 
    else{ 
     vi=convertView; 
    } 
     /*imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(170,170)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8);*/ 

    System.out.println("Inside getView"); 
    ImageView image = (ImageView)vi.findViewById(R.id.imageView); 
    image.setMaxHeight(150); 
    image.setMinimumHeight(150); 
    image.setScaleType(ImageView.ScaleType.FIT_XY); 
    image.setImageResource(imageIngredientsID[position]); 

    return vi; 
} 
+0

在此處發佈java代碼 – asloob

+0

我編輯了我的問題並添加了getView函數。 – shrikanth

回答

0

多少項目gridview獲取完全取決於你的適配器中的getCount()方法,它返回什麼? 12?

+0

嘿,非常感謝。我犯了一個愚蠢的錯誤。我已將計數設置爲長度爲12的舊靜態數組,因此它只顯示12個圖像。非常感謝這個提示:) – shrikanth

0

嘗試增加ScrollView佈局:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/wooden_background" 
    android:id="@+id/RootView"> 
    <GridView 
     android:id="@+id/gridView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:numColumns="3" 
     android:stretchMode="columnWidth" 
     android:padding="5dp" 
     android:verticalSpacing="5dp" 
     android:horizontalSpacing="5dp" 
     android:gravity="center" 
     android:maxWidth="150dip" 
     android:maxHeight="150dip" > 

    </GridView> 

</LinearLayout> 
</ScrollView>