В RecyclerView я хочу загружать изображения для каждого элемента, используя их исходное соотношение сторон. Сервер не возвращает размер изображения.
Мой код выглядит следующим образом:
@Override
public void onBindViewHolder(K holder, int position) {
// ....
Glide.with(mContext)
.load(imgUrls.get(position))
.listener(new RequestListener<String, GlideDrawable>(){
// ...
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){
int drawableWidth = resource.getIntrinsicWidth();
int drawableHeight = resource.getIntrinsicHeight();
double ratio = (drawableWidth * 1.0) / (drawableHeight * 1.0);
// depend on the ratio to set the imageView`s LayoutParams to change the imageView`s size.
.........
layoutParams.width = xx;
layoutParams.height = xx;
imageView.setLayoutParams(layoutParams);
return false;
}
})
.into(imageView);
}
Но когда я прокрутил RecyclerView или обновил RecyclerView, значение drawableWidth было изменено, поэтому размер imageView изменился, что не ожидается.
Как правильно установить размер ImageView в RecyclerView?