package com.duguang.baseanimation.ui.imitate.fang360;
import java.util.ArrayList;
import java.util.List;
import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.base.BaseActivity;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.ImageView;
/**
* 高仿360首页
*
* @author Administrator
*
*/
public class RootblockMainActivity extends BaseActivity {
private ImageView ivOne;
private ImageView ivTwo;
@Override
public void setView() {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_imitate_main);
}
@Override
public void initView() {
ivOne = (ImageView) findViewById(R.id.iv_one);
ivTwo = (ImageView) findViewById(R.id.iv_two);
vpMain = (ViewPager) findViewById(R.id.vp_main);
views = new ArrayList<View>();
views.add(View.inflate(this,
R.layout.activity_imitate_rootblock_main_first, null));
views.add(View.inflate(this, R.layout.activity_imitate_main_second,
null));
MyAdapter adapter = new MyAdapter();
MyListener listener = new MyListener();
vpMain.setAdapter(adapter);
vpMain.setOnPageChangeListener(listener);
}
@Override
public void setListener() {
// TODO Auto-generated method stub
}
public void next(View v) {
flipit(ivOne, ivTwo);
vpMain.setCurrentItem((vpMain.getCurrentItem() + 1) % views.size());
}
private Interpolator accelerator = new AccelerateInterpolator();
private Interpolator decelerator = new DecelerateInterpolator();
private ViewPager vpMain;
private List<View> views;
/**
* ��ת����
*
* @param one
* @param two
*/
private void flipit(View one, View two) {
final View visible;
final View invisible;
if (one.getVisibility() == View.GONE) {
visible = two;
invisible = one;
} else {
invisible = two;
visible = one;
}
ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visible,
"rotationY", 0f, 90f);
visToInvis.setDuration(500);
visToInvis.setInterpolator(accelerator);
final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisible,
"rotationY", -90f, 0f);
invisToVis.setDuration(500);
invisToVis.setInterpolator(decelerator);
visToInvis.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator anim) {
visible.setVisibility(View.GONE);
invisToVis.start();
invisible.setVisibility(View.VISIBLE);
}
});
visToInvis.start();
}
class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
return views.size();
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
}
class MyListener implements OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
flipit(ivOne, ivTwo);
}
}
}