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();
}
}
}