title: Creating gridview with 3 rows of imageviews that fill the whole screen
body: <p>I have been searching everywhere for similar solutions but none seem to work for me.</p>
  
  <p>On my first screen I will have a gridview which consists of 1 column and 3 rows vertically. Each row will have an imageview and a partially transparent textview on top of the text view. The imageviews span the screen width fine. My only problem is that the 3 image views do not span the full screen vertically, there is space inbetween rows, although I have tried many methods to fix this. I will post up my xml files and code:</p>
  
  <p>row_layout.xml - this is the gridview items</p>
  
  <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical" &gt;
  
  &lt;ImageView
      android:id="@+id/item_image"
      android:adjustViewBounds="true"
      android:scaleType="fitXY"
      android:layout_width="fill_parent"
      android:layout_height="180dp"
      android:src="@drawable/season1"&gt;
  &lt;/ImageView&gt;
  
  &lt;TextView
      android:id="@+id/item_text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/item_image"
      android:layout_alignTop="@+id/item_image"
      android:layout_alignRight="@+id/item_image"
      android:layout_alignBottom="@+id/item_image"
      android:gravity="bottom|left"
      android:textSize="30sp"
      android:textAlignment="center"
      android:lines="1"
      android:layout_marginTop="145dp"
      android:background="#99000000"&gt;
  
  
  &lt;/TextView&gt;
  </code></pre>
  
  <p></p>
  
  <p>main.xml</p>
  
  <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="fill_parent"
  tools:context=".MainActivity" &gt;
  
  &lt;GridView
      android:id="@+id/gridView1"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_margin="0dp"
      android:padding="0dp"
      android:gravity="center"
      android:numColumns="1"
      android:fitsSystemWindows="true"
      android:stretchMode="columnWidth" &gt;
  &lt;/GridView&gt;
  </code></pre>
  
  <p></p>
  
  <p>My custom adapter:</p>
  
  <pre><code>public class CustomGridViewAdapter extends ArrayAdapter&lt;Item&gt; {
  Context context;
  int layoutResourceId;
  ArrayList&lt;Item&gt; data = new ArrayList&lt;Item&gt;();
  
  public CustomGridViewAdapter(Context context, int layoutResourceId, ArrayList&lt;Item&gt; data) {
      super(context, layoutResourceId, data);
      this.layoutResourceId = layoutResourceId;
      this.context = context;
      this.data = data;
  }
  
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
      View row = convertView;
      RecordHolder holder = null;
  
      if (row == null) {
          LayoutInflater inflater = ((Activity) context).getLayoutInflater();
          row = inflater.inflate(layoutResourceId, parent, false);
          row.setMinimumHeight(MainActivity.height1/3);
  
          holder = new RecordHolder();
          holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
          holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
          row.setTag(holder);
      } else {
          holder = (RecordHolder) row.getTag();
      }
  
      Item item = data.get(position);
      holder.txtTitle.setText(item.getTitle());
      holder.imageItem.setImageBitmap(item.getImage());// my image
      return row;
  
  }
  
  static class RecordHolder {
      TextView txtTitle;
      ImageView imageItem;
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>MainActivity:</p>
  
  <pre><code>public class MainActivity extends ActionBarActivity {
  
  GridView gridView;
  ArrayList&lt;Item&gt; gridArray = new ArrayList&lt;Item&gt;();
  CustomGridViewAdapter customGridAdapter;
  public static int height1;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      //this.requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.main);
  
      ActionBar ab = getActionBar();
      ab.setDisplayShowTitleEnabled(false);
      ab.setDisplayShowHomeEnabled(false);
  
      Resources res = this.getResources();
  
      Bitmap bMap = BitmapFactory.decodeResource(res, R.drawable.actionbar);
      BitmapDrawable actionBarBackground = new BitmapDrawable(res, bMap);
      ab.setBackgroundDrawable(actionBarBackground);
  
      //set grid view item
  
      Bitmap season1Icon = BitmapFactory.decodeResource(res, R.drawable.season1);
      Bitmap season2Icon = BitmapFactory.decodeResource(res, R.drawable.season2);
      Bitmap season3Icon = BitmapFactory.decodeResource(res, R.drawable.season3);
  
  
      gridArray.add(new Item(season1Icon,"Season 1"));
      gridArray.add(new Item(season2Icon,"Season 2"));
      gridArray.add(new Item(season3Icon,"Season 3"));
  
      DisplayMetrics metrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(metrics);
      height1 = metrics.heightPixels;
  
      gridView = (GridView) findViewById(R.id.gridView1);
      customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
  
      gridView.setAdapter(customGridAdapter);
  
      gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          public void onItemClick(AdapterView&lt;?&gt; parent, View v,
                                  int position, long id) {
              Intent a = new Intent(MainActivity.this, House.class);
              a.putExtra("Position", position);
              startActivity(a);
          }
  
      });
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Any help will be greatly appreciated, I've spent hours trying to fix this!</p>