GridView自动适合图像

Tom*_*m O 34 android gridview

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

在此输入图像描述

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

Jef*_*elt 72

尝试使用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"
/>
Run Code Online (Sandbox Code Playgroud)

  • 辉煌.我有auto_fit,但缺少columnWidth.在我添加之后,事情开始变得很漂亮了. (4认同)
  • 我有完全相同的XML,但GridView只显示2列! (2认同)

Pie*_*sia 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 */
Run Code Online (Sandbox Code Playgroud)

最好的祝福,

Piesia


Vai*_*den 5

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

Android:GridView auto_fit如何查找列数?