使用Picasso的PhotoView:列表视图中的某些图像显得较小

时间:2016-01-18 08:19:29

标签: android listview android-imageview zooming

我将PhotoViewPicasso一起使用,当我将图片加载到ListView

1)它使一些图像变小。

2)并非所有图像都在启动时加载,当我向下滚动然后向上滚动所有图像都被加载。

没有PhotoView图片加载就好了。我尝试了很多ImageView缩放库,但PhotoView效果更好,我也尝试使用Glide,结果相同。

无论如何,我可以强制PhotoView适合ImageView属性(Match_Parent)吗?

这是我的适配器

@Override
public void onBindViewHolder( final ViewHolder holder, int position) {

    Picasso.with(context)
            .load((Integer) data.get(position))
            .resize(530,999)
            .onlyScaleDown()
            .centerInside()
            .into(holder.image);

    holder.mAttacher = new PhotoViewAttacher(holder.image);

    holder.image.setTag(holder);

}

@Override
public int getItemCount() {
    return data.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    public PhotoView image;
    public PhotoViewAttacher mAttacher;

    public ViewHolder(View view) {
        super(view);
        image = (PhotoView) view.findViewById(R.id.imagview);

我正在从资源中加载图片/不从任何url加载

2 个答案:

答案 0 :(得分:1)

不幸的是,毕加索有一个问题,更多详情请见issue #364

我切换到另一个图书馆Glide

答案 1 :(得分:0)

您可以更改您的attacher比例类型:

holder.mAttacher = new PhotoViewAttacher(holder.image);
holder.mAttacher.setScaleType(ImageView.ScaleType.CENTER_CROP);
  

CENTER_CROP :均匀缩放图像(保持图像的纵横比),以便   图像的尺寸(宽度和高度)将等于或   大于视图的相应尺寸(减去填充)。   然后图像在视图中居中。