内部使用的ImageView时的GridView高度太高(gridView height is to

2019-07-31 12:10发布

我在与高度为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×400像素)的单元格的高度变得非常高(大约宽度的两倍大小,注意,我设置网格使用2列)。 然而,当我在我的图像保存为一个更小的尺寸(比如,160×160像素)时,GridView出来正确。 的高度和宽度匹配。

下面是截图:

似乎是什么问题? 会不会是大的图像导致GridView控件错误地计算其细胞的高度? 我能做些什么来解决这个问题?

Answer 1:

我想你没有设置adjustViewBounds为true。 您可以如下设置?

imageView.setAdjustViewBounds(true);


Answer 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);

希望对你有用。



Answer 3:

试试下面的代码。 的宽度应该在跌落

 android:adjustViewBounds="true"
 android:maxWidth="150dip"
 android:maxHeight="150dip"


Answer 4:

使用wrap_content而不是使用fill_parent

因为FILL_PARENT将采取实际图像的原始高度,并尝试以填补它在屏幕上。 即使u使用400x400的图片,并设置layout_width = "160dp"layout_height = "160dp" ,它会奏效,因为我们没有让图像显示不止于此。



文章来源: gridView height is too tall when using an imageView inside