GridView自动适合图像

时间:2011-05-03 16:19:55

标签: android gridview

我试图让图像显示在GridView中并自动设置列,到目前为止我不得不手动设置不是我想要做的列数,因为这会影响图像的大小不同大小的屏幕。我尝试将其设置为auto_fit,但它只在屏幕中间显示2列。这就是我想要实现的目标:(每个红色方块代表一个图像)

enter image description here

然后当转向横向模式时,我希望列自动调整以使其全部均匀。 任何帮助将不胜感激,谢谢:)

3 个答案:

答案 0 :(得分:70)

尝试使用GridView属性,特别是android:numColumns="auto_fit"android:stretchMode。以下适用于我:

<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"
/>

答案 1 :(得分:13)

我不确定为什么有人投票给我上面的答案(所以我再次投票):我必须以编程方式解决类似的问题(使用ImageView的GridView儿童)。为清晰起见,删除了一些代码:

    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 */

致以最诚挚的问候,

Piesia

答案 2 :(得分:5)

更好的解决方案是以编程方式测量宽度,因此您不会以硬编码的列宽结束:

Android: How does GridView auto_fit find the number of columns?