Android Open Source - ViewPagerTransforms Zoom Out Slide Transformer






From Project

Back to project page ViewPagerTransforms.

License

The source code is released under:

Apache License

If you think the Android project ViewPagerTransforms listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2014 Toxic Bakery/*from ww w  .  j  av  a 2 s.c  o  m*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.ToxicBakery.viewpager.transforms;

import android.view.View;

public class ZoomOutSlideTransformer extends ABaseTransformer {

  private static final float MIN_SCALE = 0.85f;
  private static final float MIN_ALPHA = 0.5f;

  @Override
  protected void onTransform(View view, float position) {
    if (position >= -1 || position <= 1) {
      // Modify the default slide transition to shrink the page as well
      final float height = view.getHeight();
      final float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
      final float vertMargin = height * (1 - scaleFactor) / 2;
      final float horzMargin = view.getWidth() * (1 - scaleFactor) / 2;

      // Center vertically
      view.setPivotY(0.5f * height);

      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));
    }
  }

}




Java Source Code List

com.ToxicBakery.viewpager.transforms.ABaseTransformer.java
com.ToxicBakery.viewpager.transforms.AccordionTransformer.java
com.ToxicBakery.viewpager.transforms.BackgroundToForegroundTransformer.java
com.ToxicBakery.viewpager.transforms.CubeInTransformer.java
com.ToxicBakery.viewpager.transforms.CubeOutTransformer.java
com.ToxicBakery.viewpager.transforms.DefaultTransformer.java
com.ToxicBakery.viewpager.transforms.DepthPageTransformer.java
com.ToxicBakery.viewpager.transforms.FlipHorizontalTransformer.java
com.ToxicBakery.viewpager.transforms.FlipVerticalTransformer.java
com.ToxicBakery.viewpager.transforms.ForegroundToBackgroundTransformer.java
com.ToxicBakery.viewpager.transforms.RotateDownTransformer.java
com.ToxicBakery.viewpager.transforms.RotateUpTransformer.java
com.ToxicBakery.viewpager.transforms.StackTransformer.java
com.ToxicBakery.viewpager.transforms.TabletTransformer.java
com.ToxicBakery.viewpager.transforms.ZoomInTransformer.java
com.ToxicBakery.viewpager.transforms.ZoomOutSlideTransformer.java
com.ToxicBakery.viewpager.transforms.ZoomOutTranformer.java
com.ToxicBakery.viewpager.transforms.example.MainActivity.java
transforms.viewpager.toxicbakery.com.viewpagertransforms.ApplicationTest.java