在使用viewpager和picasso库和photoview库时,我会遇到两个问题。
1)有些图像不会缩放,而有时下一张图像会被缩放。
2)有时当我缩放图像时,相邻的图像也会随当前图像一起缩放。
如何解决以上两个问题?
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();
}
}发布于 2017-03-21 18:44:08
Android操作系统出现问题。你也可以在list中看到类似的问题
https://stackoverflow.com/questions/41728751
复制相似问题