package com.wuxiaolong.wewin.ui.juzimi;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.Window;
import com.wuxiaolong.wewin.model.MainModel;
import com.wuxiaolong.wewin.ui.BaseActivity;
import com.xiaomolongstudio.wewin.R;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ShowImageActivity extends BaseActivity {
private List<MainModel> mMainList;
@BindView(R.id.viewPager)
ViewPager mViewPager;
private int position;
private int color;
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_image);
ButterKnife.bind(this);
mMainList = (List<MainModel>) this.getIntent().getSerializableExtra("mainList");
position = this.getIntent().getIntExtra("position", 0);
color = this.getIntent().getIntExtra("color", getResources().getColor(R.color.red));
setStatusBarColor(color);
mViewPager.setPageTransformer(true, new CardTransformer(0.8f));
mViewPager.setAdapter(new FragmentPagerAdapter());
mViewPager.setCurrentItem(position);
}
public void setStatusBarColor(int statusBarColor) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(statusBarColor);
}
}
/**
* Awesome Launcher-inspired page transformer
*/
private static class CardTransformer implements ViewPager.PageTransformer {
private final float scaleAmount;
public CardTransformer(float scalingStart) {
scaleAmount = 1 - scalingStart;
}
@Override
public void transformPage(View page, float position) {
if (position >= 0f) {
final int w = page.getWidth();
float scaleFactor = 1 - scaleAmount * position;
page.setAlpha(1f - position);
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setTranslationX(w * (1 - position) - w);
}
}
}
private class FragmentPagerAdapter extends FragmentStatePagerAdapter {
public FragmentPagerAdapter() {
super(getSupportFragmentManager());
}
@Override
public int getCount() {
return mMainList.size();
}
@Override
public Fragment getItem(int position) {
return ShowImageFragment.newFragment(mMainList.get(position), position);
}
}
}