2011-10-27 26 views
0

在我的gridview中,我想在每個圖像的頂部顯示一些文本。所以在XML中我已經定義了一個相對佈局,一個圖像視圖和一個文本視圖。android:gridview如何使用viewholder指定佈局參數

在適配器的getview方法我使用視圖持有人與一個圖像視圖和一個文本視圖。現在我的問題是如何設置佈局參數。

代碼

convertView = mInflater.inflate(R.layout.griditems, null); 
     holder = new ViewHolder(); 
     holder.text1 = (TextView) convertView 
       .findViewById(R.id.grid_item_text); 
     holder.image = (ImageView) convertView 
       .findViewById(R.id.grid_item_image); 

........

static class ViewHolder { 
    TextView text1; 
    ImageView image; 

} 

的XML是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/GridItem" android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal" 
android:padding="15dip" 
> 
<ImageView android:id="@+id/grid_item_image" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:scaleType="fitXY"> 
</ImageView> 
<TextView android:id="@+id/grid_item_text" 
    android:layout_width="200dip" android:layout_height="wrap_content" 
    android:background="@drawable/labelbg" 
    android:layout_alignLeft="@+id/grid_item_image" 
    android:layout_alignBottom="@+id/grid_item_image" 
    android:textColor="#000000"/> 

,如果我嘗試holder.image.setLayoutParams(新的GridView.LayoutParams(200, 200));它的例外。如何設置這個。有沒有使用一些一般KES像FILL_PARENT

回答

0

在你的GridView適配器,在getView方法來設置它在XML文件中的一個選項,使用休耕:

View v; 
    LayoutInflater li = getLayoutInflater(); 
    v = li.inflate(R.layout.griditems, null); 


    TextView tv = (TextView) v.findViewById(R.id.grid_item_text); 
    tv.setText("image number" + position); 

    ImageView iv = (ImageView) v.findViewById(R.id.grid_item_image); 
    iv.setImageBitmap(bitmap); // what image you want 

    return v; 

祝你好運!

+0

謝謝。我的問題不是關於設置圖像源,而是使用佈局參數定義網格的大小。如果它只是一個圖像視圖,我可以使用.image.setLayoutParams(新的GridView.LayoutParams(200,200)..但在這裏我使用視圖持有人。 – png

+0

我不明白爲什麼你需要一個圖像持有人...爲你的任務一個GridView與圖像上面有足夠的文字我已經提議...你可以在xml文件中查看圖片和文本 –

+0

對不起,我的意思是查看持有人... –