package com.luck.picture.lib.ui; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; import com.luck.picture.lib.R; import com.luck.picture.lib.model.FunctionConfig; import com.luck.picture.lib.widget.PreviewViewPager; import com.yalantis.ucrop.entity.LocalMedia; import java.util.ArrayList; import java.util.List; /** * author:luck * project:PictureSelector * package:com.luck.picture.ui * email:邮箱->893855882@qq.com * data:17/01/18 */ public class PictureExternalPreviewActivity extends FragmentActivity { private ImageButton left_back; private TextView tv_title; private PreviewViewPager viewPager; private List<LocalMedia> images = new ArrayList<>(); private int position = 0; private String directory_path; private SimpleFragmentAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.picture_activity_external_preview); tv_title = (TextView) findViewById(R.id.picture_title); left_back = (ImageButton) findViewById(R.id.left_back); viewPager = (PreviewViewPager) findViewById(R.id.preview_pager); position = getIntent().getIntExtra(FunctionConfig.EXTRA_POSITION, 0); directory_path = getIntent().getStringExtra(FunctionConfig.DIRECTORY_PATH); images = (List<LocalMedia>) getIntent().getSerializableExtra(FunctionConfig.EXTRA_PREVIEW_SELECT_LIST); left_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); initViewPageAdapterData(); } private void initViewPageAdapterData() { tv_title.setText(position + 1 + "/" + images.size()); adapter = new SimpleFragmentAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); viewPager.setCurrentItem(position); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { tv_title.setText(position + 1 + "/" + images.size()); } @Override public void onPageScrollStateChanged(int state) { } }); } public class SimpleFragmentAdapter extends FragmentPagerAdapter { public SimpleFragmentAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { LocalMedia media = images.get(position); String path = ""; if (media.isCut() && !media.isCompressed()) { // 裁剪过 path = media.getCutPath(); } else if (media.isCompressed() || (media.isCut() && media.isCompressed())) { // 压缩过,或者裁剪同时压缩过,以最终压缩过图片为准 path = media.getCompressPath(); } else { path = media.getPath(); } PictureImagePreviewFragment fragment = PictureImagePreviewFragment.getInstance(path, false, directory_path, images); return fragment; } @Override public int getCount() { return images.size(); } } }