相关疑难解决方法(0)

GridView自动适合图像

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

在此输入图像描述

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

android gridview

34
推荐指数
3
解决办法
5万
查看次数

GridView和多余的空间填充

Android上的网格视图布局有问题.我找不到解决方案来消除网格视图中的额外空间.我尝试了很多东西(numColumns,columnWidth,stretchMode,gravity)和建议(来自StackOverflow),但没有任何工作正常.我花了将近8个小时来解决这个问题.这是一个网格视图代码:

<GridView
        android:id="@+id/lookbook_gridview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@null"
        android:padding="0dip"
        android:layout_margin="0dip"
        android:verticalSpacing="0px"
        android:horizontalSpacing="0px"

        android:numColumns="auto_fit"
        android:columnWidth="160px"
        android:stretchMode="columnWidth"
        android:gravity="center" 
        android:layout_gravity="center"

        android:background="#000"
        android:cacheColorHint="#000"
        android:descendantFocusability="afterDescendants"
        android:layout_alignParentTop="true"
        android:layout_above="@id/buttons">
    </GridView> 
Run Code Online (Sandbox Code Playgroud)

我还试图以编程方式减少额外空间:

private void setGridview()
{  
    GridView gridview = (GridView) findViewById(R.id.lookbook_gridview);
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

    int gridSize = display.getWidth();
    int count = gridSize / 160; // image has 160x160 px
    int colWidth = (gridSize / count) - PADDING;

    gridview.setColumnWidth(colWidth);
    gridview.setNumColumns(count);
}
Run Code Online (Sandbox Code Playgroud)

但它仅适用于我的HTC Desire(右),但在模拟器(左)具有相同的显示分辨率和相同的API版本 - 它不起作用.

在此输入图像描述

有人知道,如何在gridview中设置图像而没有任何特殊的填充或空间来成功地与所有分辨率和设备一起工作?

layout android gridview padding stretch

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

android ×2

gridview ×2

layout ×1

padding ×1

stretch ×1