У меня есть recyclerView, у которого есть CircularImageView, и я загружаю изображения из URL-адреса в imageView с помощью Picasso. Я также добавил анимацию исчезновения.
Но когда я быстро прокручиваю, в программе recyclerView отображаются артефакты предыдущих изображений.
Это мой адаптер:
public class CastAdapter extends RecyclerView.Adapter<CastAdapter.CastHolder> {
private List<String> cast;
private Context mContext;
public CastAdapter(List<String> cast, Context mContext) {
this.cast = cast;
this.mContext = mContext;
}
@NonNull
@Override
public CastHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.item_movie_cast, viewGroup, false);
return new CastHolder(view);
}
@Override
public void onBindViewHolder(@NonNull CastHolder castHolder, int i) {
String url = TMDB_IMAGE + "w185" + cast.get(i);
Picasso.get().load(url).into(castHolder.target);
}
@Override
public int getItemCount() {
return cast.size();
}
class CastHolder extends RecyclerView.ViewHolder {
private CircleImageView imageView;
private Animation fadeIn;
Target target;
CastHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.cast);
fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(200);
fadeIn.reset();
target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
imageView.setImageBitmap(bitmap);
imageView.startAnimation(fadeIn);
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
}
}
РЕДАКТИРОВАТЬ: Я попытался отключить анимацию, и артефакты все еще были там