package com.c9mj.platform.gallery.ui; import android.content.Context; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.blankj.utilcode.utils.ToastUtils; import com.bumptech.glide.Glide; import com.c9mj.platform.R; import com.c9mj.platform.gallery.adapter.GalleryAdapter; import com.c9mj.platform.gallery.mvp.presenter.impl.GalleryPresenterImpl; import com.c9mj.platform.gallery.mvp.view.IGalleryView; import com.c9mj.platform.widget.activity.BaseSwipeActivity; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import uk.co.senab.photoview.PhotoView; /** * Created by Administrator on 2016/11/16. */ public class GalleryActivity extends BaseSwipeActivity implements IGalleryView, ViewPager.OnPageChangeListener { public static final String PHOTO_SET = "photoset"; public static final String INDEX = "index"; public static final String IMG_LIST = "img_list"; private final List<View> viewList = new ArrayList<>(); @BindView(R.id.viewpager) ViewPager viewPager; @BindView(R.id.tv_index) TextView tv_index; private Context context; private GalleryPresenterImpl presenter; private GalleryAdapter adapter; private String photoSetId; private List<String> imgList = new ArrayList<>(); private int index; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gallery); ButterKnife.bind(this); context = this; photoSetId = getIntent().getStringExtra(PHOTO_SET); if (TextUtils.isEmpty(photoSetId)) {//photoSetId为空,直接取imgList imgList = getIntent().getStringArrayListExtra(IMG_LIST); index = getIntent().getIntExtra(INDEX, 0); } initView(); if (TextUtils.isEmpty(photoSetId)) {//photoSetId为空,可以设置ViewPager initViewPager(); } else {//photoSetId不为空,请求获取具体的photoSet presenter.getExploreSet(photoSetId); } } private void initView() { //初始化MVP presenter = new GalleryPresenterImpl(this); //设置TitleBar //设置RefreshLayout //设置RecyclerView //设置其他View } /** * 初始化ViewPager */ private void initViewPager() { for (String url : imgList) { PhotoView photoView = new PhotoView(context); ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); photoView.setLayoutParams(lp); Glide.with(context).load(url) .fitCenter() .thumbnail(0.1f) .into(photoView); viewList.add(photoView); viewPager.setCurrentItem(index); tv_index.setText((index + 1) + "/" + imgList.size()); } adapter = new GalleryAdapter(viewList); viewPager.setAdapter(adapter); viewPager.setOffscreenPageLimit(2); viewPager.addOnPageChangeListener(this); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { tv_index.setText((position + 1) + "/" + imgList.size()); } @Override public void onPageScrollStateChanged(int state) { } @Override public void updateViewPager(ArrayList<String> imgList) { this.imgList.addAll(imgList); initViewPager(); } @Override public void showError(String message) { ToastUtils.showShortToast(message); } @OnClick({R.id.titlebar_iv_toggle}) public void onClick(View view) { switch (view.getId()) { case R.id.titlebar_iv_toggle: finish(); break; default: break; } } }