将图像中心裁剪为可变大小的ImageView?

时间:2015-12-04 14:45:55

标签: android android-recyclerview picasso

我有一个回收站视图,其中包含可变大小的项目。现在,我正在使用Picasso加载图像,我想调整图片大小以填充ImageView,保留纵横比并裁剪图像以使其完全符合ImageView。但是,在绑定视图持有者期间,ImageView的宽度为0。我如何获得尺寸?

代码看起来像这样:

@Override
public void onBindViewHolder(ViewHolder holder, final int position)
{
    Foo foo = mFoos.get(position);

    // Get the size - THIS IS WHAT I WANT TO FIND OUT
    int width = ...;
    int height = 100;

    // Load the image using Picasso
    Picasso.with(mContext)
           .load(foo.getImageURL())
           .centerCrop()
           .resize(width, height)
           .into(holder.image);
}

1 个答案:

答案 0 :(得分:0)

那是因为视角测量尚未完成。所以在这一点上宽度实际上是0。 您需要实施ViewTreeObserver

看看其中一些例子:

  

How to get the width and height of an Image View in android?

     

How to get the width and height of an android.widget.ImageView?