package com.tiger.quicknews.wedget.viewimage.Transformers; import android.os.Build; import android.view.View; import com.nineoldandroids.view.ViewHelper; import com.tiger.quicknews.wedget.viewimage.Tricks.ViewPagerEx; 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)); } } }