package com.anthony.imagepicker.adapter; import android.app.Activity; import android.support.v4.view.PagerAdapter; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewGroup; import com.anthony.imagepicker.ImagePicker; import com.anthony.imagepicker.Utils; import com.anthony.imagepicker.bean.ImageItem; import java.util.ArrayList; import uk.co.senab.photoview.PhotoView; import uk.co.senab.photoview.PhotoViewAttacher; /** * ================================================ * 作 者:jeasonlzy(廖子尧 Github地址:https://github.com/jeasonlzy0216 * 版 本:1.0 * 创建日期:2016/5/19 * 描 述: * 修订历史: * ================================================ */ public class ImagePageAdapter extends PagerAdapter { private int screenWidth; private int screenHeight; private ImagePicker imagePicker; private ArrayList<ImageItem> images = new ArrayList<>(); private Activity mActivity; public PhotoViewClickListener listener; public ImagePageAdapter(Activity activity, ArrayList<ImageItem> images) { this.mActivity = activity; this.images = images; DisplayMetrics dm = Utils.getScreenPix(activity); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; imagePicker = ImagePicker.getInstance(); } public void setData(ArrayList<ImageItem> images) { this.images = images; } public void setPhotoViewClickListener(PhotoViewClickListener listener) { this.listener = listener; } @Override public Object instantiateItem(ViewGroup container, int position) { PhotoView photoView = new PhotoView(mActivity); ImageItem imageItem = images.get(position); imagePicker.getImageLoader().displayImage(mActivity, imageItem.path, photoView, screenWidth, screenHeight); photoView.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() { @Override public void onPhotoTap(View view, float x, float y) { if (listener != null) listener.OnPhotoTapListener(view, x, y); } @Override public void onOutsidePhotoTap() { } }); container.addView(photoView); return photoView; } @Override public int getCount() { return images.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getItemPosition(Object object) { return POSITION_NONE; } public interface PhotoViewClickListener { void OnPhotoTapListener(View view, float v, float v1); } }