/** * 浏览图片 */ public class ImagePagerActivity extends BaseActivity { @BindView(R.id.pager) ImageViewPager mPager; @BindView(R.id.indicator) TextView indicator; private int pagerPosition; private static final String STATE_POSITION = "STATE_POSITION"; public static final String EXTRA_IMAGE_INDEX = "image_index"; public static final String EXTRA_IMAGE_URLS = "image_urls"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // TODO: add setContentView(...) invocation ButterKnife.bind(this); initView(); if (savedInstanceState != null) { pagerPosition = savedInstanceState.getInt(STATE_POSITION); } } private void initView() { pagerPosition = getIntent().getIntExtra(EXTRA_IMAGE_INDEX, 0); ArrayList<String> urls = getIntent().getStringArrayListExtra(EXTRA_IMAGE_URLS); MyImageAdapter mAdapter = new MyImageAdapter(urls); mPager.setAdapter(mAdapter); CharSequence text = getString(R.string.viewpager_indicator, 1, mPager.getAdapter().getCount()); indicator.setText(text); // 更新下标 mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { CharSequence text = getString(R.string.viewpager_indicator, arg0 + 1, mPager.getAdapter().getCount()); indicator.setText(text); } }); mPager.setCurrentItem(pagerPosition); } @Override public int setLayoutId() { return R.layout.image_pager_activity; } @Override public String setTitle() { return getString(R.string.string_brows_pictures); } @Override public void wingetListener() { } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(STATE_POSITION, mPager.getCurrentItem()); } class MyImageAdapter extends PagerAdapter { private List<String> imageUrls; public MyImageAdapter(List<String> imageUrls) { this.imageUrls = imageUrls; } @Override public Object instantiateItem(ViewGroup container, int position) { String url = imageUrls.get(position); PhotoView photoView = new PhotoView(ImagePagerActivity.this); GlideUtil.loadAty(url, photoView); container.addView(photoView); photoView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImagePagerActivity.this.finish(); } }); return photoView; } @Override public int getCount() { return imageUrls != null ? imageUrls.size() : 0; } @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; } } }
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.yihuo.artfire.shop.utils.ImageViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black" /> <TextView android:id="@+id/indicator" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@android:color/transparent" android:gravity="center" android:textColor="@android:color/white" android:textSize="18sp" /> </FrameLayout>