package cn.alphabets.light.ui;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
import cn.alphabets.light.R;
import cn.alphabets.light.application.ABSwipeBackActivity;
import cn.alphabets.light.network.VolleyManager;
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
public class PreviewActivity extends ABSwipeBackActivity implements ViewPager.OnPageChangeListener {
public static final String IMAGES = "images";
public static final String INDEX = "index";
List<String> mPhotoUriList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().hide();
setContentView(R.layout.activity_preview);
Bundle extras = getIntent().getExtras();
int index = extras.getInt(INDEX);
mPhotoUriList = extras.getStringArrayList(IMAGES);
if (mPhotoUriList == null) {
mPhotoUriList = new ArrayList<>();
}
ViewPager pager = (ViewPager) findViewById(R.id.view_pager);
ViewPagerAdapter adapter = new ViewPagerAdapter();
pager.setAdapter(adapter);
pager.setCurrentItem(index);
pager.setOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int i) {
}
class ViewPagerAdapter extends PagerAdapter {
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 使用PhotoView控件来预览图片
PhotoView photoView = new PhotoView(container.getContext());
photoView.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
@Override
public void onViewTap(View view, float v, float v2) {
onBackPressed();
}
});
VolleyManager.loadImage(mPhotoUriList.get(position), photoView);
container.addView(photoView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
return photoView;
}
@Override
public int getCount() {
return mPhotoUriList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
}
}
}