在RecyclerView中,我希望为每个项目加载其原始纵横比的图像。服务器不会返回图像的大小。
我的代码如下:
但是当我滚动 RecyclerView 或者刷新 RecyclerView 后,drawableWidth 的值会改变,导致 imageView 的大小改变,这并不是预期的结果。
在 RecyclerView 中设置 ImageView 大小的正确方式是什么?
我的代码如下:
@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 的大小改变,这并不是预期的结果。
在 RecyclerView 中设置 ImageView 大小的正确方式是什么?