2011-05-03 60 views
29

即时通讯尝试获取图像显示在GridView中并获取列自动设置,到目前为止,我不得不手动设置不是我想要做的列数,因为这会影响有多大图像在不同大小的屏幕上。我试图将其设置为auto_fit,但它只在屏幕中间显示2列。这是我尝试实现:打开时为横向模式我想列自动调整,以便其所有的偶数(每个红色方块代表的图像)GridView自动适合图像

enter image description here

然后。 任何帮助将不胜感激,谢谢:)

回答

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

辉煌。我有auto_fit,但缺少columnWidth。我补充说,事情开始美丽的工作。 – 2011-09-14 02:22:25

+0

我除了columnWidth参数之外都有其他所有的东西,它必须有2列中的任何一个 – njzk2 2011-11-07 15:24:48

+2

我具有相同的确切XML,但GridView仍然只显示2列! – 2013-06-13 18:57:49

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

+0

为什么NO_STRETCH在拉伸模式下比STRETCH_COLUMN_WIDTH好? – 2014-01-14 21:02:05