首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >viewpager + picasso + photoview问题

viewpager + picasso + photoview问题
EN

Stack Overflow用户
提问于 2017-01-19 04:20:57
回答 1查看 326关注 0票数 0

在使用viewpager和picasso库和photoview库时,我会遇到两个问题。

1)有些图像不会缩放,而有时下一张图像会被缩放。

2)有时当我缩放图像时,相邻的图像也会随当前图像一起缩放。

如何解决以上两个问题?

代码语言:javascript
运行
复制
public class ImageViewerPagerAdapter extends PagerAdapter implements PhotoViewAttacher.OnViewTapListener {


Context context;
private int count;
private ArrayList<String> images;
private PhotoViewAttacher mAttacher;
private boolean shouldFit = false;


public ImageViewerPagerAdapter(Context context, int count, ArrayList<String> images, boolean shouldFit) {
    this.context = context;
    this.count = count;
    this.images = new ArrayList<>(images);
    this.shouldFit = shouldFit;

}


@Override
public int getCount() {
    return count;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((FrameLayout) object);
}


@Override
public Object instantiateItem(ViewGroup container, int position) {

    String imageUrl = images.get(position);
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.activity_image_viewpager_layout, container, false);
    final PhotoView imageView = (PhotoView) view.findViewById(R.id.image);
    if (shouldFit) {
        Picasso.with(context).load(imageUrl).into(imageView, new Callback() {
            @Override
            public void onSuccess() {

                if (mAttacher != null) {
                    mAttacher.update();
                } else {
                    mAttacher = new PhotoViewAttacher(imageView);
                    mAttacher.setOnViewTapListener(ImageViewerPagerAdapter.this);
                }

            }

            @Override
            public void onError() {

            }
        });
    } else {
        Picasso.with(context).load(imageUrl).into(imageView, new Callback() {
            @Override
            public void onSuccess() {
                if (mAttacher != null) {
                    mAttacher.update();
                } else {
                    mAttacher = new PhotoViewAttacher(imageView);
                    mAttacher.setOnViewTapListener(ImageViewerPagerAdapter.this);
                }
            }

            @Override
            public void onError() {

            }
        });
    }

    container.addView(view);


    return view;
}


@Override
public void onViewTap(View view, float v, float v1) {
    Toaster.make(context,"hello");
    ((ImageViewPagerActivity) context).animateToolbar();
}


}
EN

回答 1

Stack Overflow用户

发布于 2017-03-21 18:44:08

Android操作系统出现问题。你也可以在list中看到类似的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41728751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档