回收器视图中的动态图像高度

时间:2018-07-10 10:09:38

标签: android android-recyclerview android-glide

我想使用Glide加载具有动态高度的图像。我有一个ImageView,其高度为wrap_content,宽度为match_parent。回收器视图首次加载时。第一幅图像的高度大于其余图像的高度。当我向下滚动视图进行回收时,我的较大高度的图像可以很好地加载,并且没有任何像素化;当我滚动回到顶部的第一张较大图像时,它得到像素化的感觉。我认为,当视图进行回收时,滑行正在使用较小的回收站图像视图高度来对较大的高度进行下采样由于图像变得像素化。我不想在recyclerview上使用setRecyclable(false)。这是实现

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/drc_imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@color/OFF_WHITE" />
</LinearLayout>

用于加载图像

GlideApp
                .with(context)
                .asBitmap()
                .fitCenter()
                .load(absoluteHomeList.get(position - 1).getDynamic_card_url())
                .into(holder.dynamicImageView);

以下是参考图像 In first image when is not recycled image is loading properly without pixelating

In second image i scrolled recycler view down and back to top the first image gets pixelated

1 个答案:

答案 0 :(得分:3)

在使用滑行加载图像之前

holder.dynamicImageView.layout(0,0,0,0);