我遇到了GridView中单元格高度的问题。我的每个单元格都有一个imageView,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:id="@+id/eventGridView" android:numColumns="2"/>
</LinearLayout>
以下是每个单元格的ImageView
<com.example.scheduling_android.view.RoundedCornerImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:maxWidth="150dp"
android:maxHeight="150dp"
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/eventImageView"
android:adjustViewBounds="false"/>
我正在为我的imageView使用不同的图像大小。我得到的是,每当我的图像变大(例如,400 x 400px)时,单元格的高度变得非常高(大约是宽度的两倍,请注意我将网格设置为使用2列)。但是,当我将图像保存为较小的尺寸(例如,160 x 160px)时,gridView正确显示。高度和宽度匹配。
以下是截图:
似乎有什么问题?可能是大图像导致gridView错误地计算其单元格的高度?我该怎么做才能解决这个问题?
答案 0 :(得分:17)
我认为你没有将adjustViewBounds设置为true。你能设置如下吗?
imageView.setAdjustViewBounds(true);
答案 1 :(得分:2)
这里我每行都有用户3列,它工作正常。 图库视图在运行时设置列宽
mPhotoGalleryGridView.setColumnWidth(display.getWidth() / 3);
布局
<GridView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/photogallerygridview"
android:padding="5dp"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:stretchMode="columnWidth"
android:numColumns="3"
android:gravity="center">
</GridView>
适配器中的:设置imageview的高度和宽度,
imageview.setMaxHeight(150);
imageview.setMinimumHeight(150);
希望对你有用。
答案 2 :(得分:0)
使用wrap_content
代替fill_parent
。
因为fill_parent实际上会占用图像的原始高度并尝试将其填入屏幕。即使你使用400x400图像并设置
layout_width = "160dp"
和layout_height = "160dp"
,它会起作用,因为我们不允许图片显示更多内容。
答案 3 :(得分:0)
尝试以下代码。宽度应该是逢低
android:adjustViewBounds="true"
android:maxWidth="150dip"
android:maxHeight="150dip"