我正在使用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
img.setImageBitmap(null)
中手动设置onBindView
或使用滑行placeholder
功能。