package com.marshalchen.common.uimodule.slider.Transformers;
import android.os.Build;
import android.view.View;
import com.marshalchen.common.uimodule.slider.Tricks.ViewPagerEx;
import com.marshalchen.common.uimodule.nineoldandroids.view.ViewHelper;
public class FlipPageViewTransformer extends BaseTransformer {
@Override
protected void onTransform(View view, float position) {
float percentage = 1 - Math.abs(position);
if(Build.VERSION.SDK_INT >= 13){
view.setCameraDistance(12000);
}
setVisibility(view, position);
setTranslation(view);
setSize(view, position, percentage);
setRotation(view, position, percentage);
}
private void setVisibility(View page, float position) {
if (position < 0.5 && position > -0.5) {
page.setVisibility(View.VISIBLE);
} else {
page.setVisibility(View.INVISIBLE);
}
}
private void setTranslation(View view) {
ViewPagerEx viewPager = (ViewPagerEx) view.getParent();
int scroll = viewPager.getScrollX() - view.getLeft();
ViewHelper.setTranslationX(view,scroll);
}
private void setSize(View view, float position, float percentage) {
ViewHelper.setScaleX(view,(position != 0 && position != 1) ? percentage : 1);
ViewHelper.setScaleY(view,(position != 0 && position != 1) ? percentage : 1);
}
private void setRotation(View view, float position, float percentage) {
if (position > 0) {
ViewHelper.setRotationY(view,-180 * (percentage + 1));
} else {
ViewHelper.setRotationY(view,180 * (percentage + 1));
}
}
}