3Answers
  • 7
name

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191

Backtrace:

File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

name Punditsdkoslkdosdkoskdo

GridView auto fit images

im trying to get images displayed in a GridView and get the columns automatically set, so far I've had to manually set the number of columns which is not what i want to do as this will affect how big the images are on different sized screens. I ahve tried setting it to auto_fit but it only displays 2 columns in the middle of the screen. This is what im trying to achieve: (Each red square represents an image)

enter image description here

then when turned to landscape mode i want the columns to auto fit so that its all even. Any help would be much appreciated, thank you :)

Experiment with the GridView attributes, specifically android:numColumns="auto_fit" and android:stretchMode. The following works for me:

<GridView 
    android:id="@+id/myGrid"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"    
    android:gravity="center"
/>
  • 74
Reply Report
    • Brilliant. I had auto_fit, but was missing columnWidth. After I added that, things started working beautifully.
      • 1
    • @?????? If you don't specify columnWidth you will get 2 columns by default, as looking at GridView's source code would tell you. You can use my solution (specified here) for those cases.

I'm not sure why someone voted down the answer above me (so I voted it up again): I had to solve a similar problem programatically (with a GridView of ImageView children). Some code removed for clarity:

    int iDisplayWidth = getResources().getDisplayMetrics().widthPixels ;

    iImageWidth = iDisplayWidth
        / iNumberOfColumns ; 
    gridview.setColumnWidth( iImageWidth );
    gridview.setStretchMode( GridView.NO_STRETCH ) ;    
    /* wrap_content in the xml file is supposed to do this, but it didn't seem to work */

Best regards,

Piesia

  • 13
Reply Report