zoukankan      html  css  js  c++  java
  • Android ViewPager动画切换

    使用方法

    setPageTransformer

    例如: ViewPager.setPageTransformer(true, new ZoomOutPageTransformer())
    package com.hellotalk.view;
    
    import android.annotation.SuppressLint;
    import android.support.v4.view.ViewPager.PageTransformer;
    import android.view.View;
    /**
     * 
     * @author way
     *
     */
    @SuppressLint("NewApi")
    public class ZoomOutPageTransformer implements PageTransformer {
    	private static float MIN_SCALE = 0.85f;
    
    	private static float MIN_ALPHA = 0.5f;
    
    	@Override
    	public void transformPage(View view, float position) {
    		int pageWidth = view.getWidth();
    		int pageHeight = view.getHeight();
    
    		if (position < -1) { // [-Infinity,-1)
    								// This page is way off-screen to the left.
    			view.setAlpha(0);
    		} else if (position <= 1) { // [-1,1]
    									// Modify the default slide transition to
    									// shrink the page as well
    			float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
    			float vertMargin = pageHeight * (1 - scaleFactor) / 2;
    			float horzMargin = pageWidth * (1 - scaleFactor) / 2;
    			if (position < 0) {
    				view.setTranslationX(horzMargin - vertMargin / 2);
    			} else {
    				view.setTranslationX(-horzMargin + vertMargin / 2);
    			}
    			// Scale the page down (between MIN_SCALE and 1)
    			view.setScaleX(scaleFactor);
    			view.setScaleY(scaleFactor);
    			// Fade the page relative to its size.
    			view.setAlpha(MIN_ALPHA + (scaleFactor - MIN_SCALE)
    					/ (1 - MIN_SCALE) * (1 - MIN_ALPHA));
    		} else { // (1,+Infinity]
    					// This page is way off-screen to the right.
    			view.setAlpha(0);
    		}
    	}
    }
    
  • 相关阅读:
    makefile
    xcode
    centos
    debug
    服务器开发
    socket
    xcode
    调用cpp库更基本
    nodejs cpp动态库
    html5图片裁剪法--
  • 原文地址:https://www.cnblogs.com/cmgrass/p/4992417.html
Copyright © 2011-2022 走看看