在滚动时停止重新加载图像

问题描述 投票:0回答:1

我正在使用Glide通过URLs加载一些纹理,在纹理加载后,将它们应用于bitmap并在bitmap上显示最终的ImageView,如下代码:

void onBindView(int position){

        Glide.with(c).asBitmap().load(spacecrafts.get(position)).apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL))
                .into(new CustomTarget<Bitmap>() {
                    @Override
                    public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                        if (originalBitmap != null) {
                            if (position == 0)
                                img.setImageBitmap(setChromaticEffect(originalBitmap));
                            else if (position == 1)
                                img.setImageBitmap(setGlitchEffect(originalBitmap));
                            else img.setImageBitmap(setEffect(c, resource, originalBitmap));
                        }
                        progress.setVisibility(View.GONE);

                    }

                    @Override
                    public void onLoadCleared(@Nullable Drawable placeholder) {

                    }
                });

    }

我的问题:

当我快速滚动时,我看到加载的纹理再次被加载,我需要等待大约2秒钟才能看到正确的纹理被加载和应用。

这里有一段录像带,可以更好地理解:VIDEO

java android android-recyclerview android-glide
1个回答
0
投票
问题是-您忘记从图像视图中删除旧图像。您可以在img.setImageBitmap(null)中手动设置onBindView或使用滑行placeholder功能。
© www.soinside.com 2019 - 2024. All rights reserved.