package com.ody.photopicker.adapter;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.ody.photopicker.PhotoPicker;
import com.ody.photopicker.R;
import com.ody.photopicker.utils.AndroidLifecycleUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Samuel on 15/6/21.
*/
public class PhotoPagerAdapter extends PagerAdapter {
private List<String> paths = new ArrayList<>();
public PhotoPagerAdapter(List<String> paths) {
this.paths = paths;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final Context context = container.getContext();
View itemView = LayoutInflater.from(context)
.inflate(R.layout.__picker_picker_item_pager, container, false);
final ImageView imageView = (ImageView) itemView.findViewById(R.id.iv_pager);
final String path = paths.get(position);
final Uri uri;
if (path.startsWith("http")) {
uri = Uri.parse(path);
} else {
uri = Uri.fromFile(new File(path));
}
boolean canLoadImage = AndroidLifecycleUtils.canLoadImage(context);
if (canLoadImage) {
if (PhotoPicker.mImageLoader == null) throw new RuntimeException("请先设置图片加载器");
PhotoPicker.mImageLoader.displayImage(imageView, uri);
// Glide
// .with(context).load(path)
// .thumbnail(0.1f)
// .dontAnimate()
// .dontTransform()
// .override(800, 800)
// .placeholder(R.drawable.__picker_ic_photo_black_48dp)
// .error(R.drawable.__picker_ic_broken_image_black_48dp)
// .into(imageView);
}
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (context instanceof Activity) {
if (!((Activity) context).isFinishing()) {
((Activity) context).onBackPressed();
}
}
}
});
container.addView(itemView);
return itemView;
}
@Override
public int getCount() {
return paths.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);
if (PhotoPicker.mImageLoader == null) throw new RuntimeException("请先设置图片加载器");
PhotoPicker.mImageLoader.clear((View) object);
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}