Android Open Source - RZAndroidBaseUtils Relative Layout Params Animation






From Project

Back to project page RZAndroidBaseUtils.

License

The source code is released under:

MIT License

If you think the Android project RZAndroidBaseUtils 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

package com.raizlabs.view.animation;
// ww  w .j a v a 2 s.co m
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;

import com.raizlabs.baseutils.Math;

/**
 * View Animation class which animates the numeric parameters of the
 * {@link RelativeLayout} {@link LayoutParams} of a given {@link View} from one
 * set of {@link LayoutParams} to another.
 * @author Dylan James
 *
 */
public class RelativeLayoutParamsAnimation extends Animation {

  private View view;
  
  private LayoutParams from, to;
  /**
   * @param params The {@link LayoutParams} to animate from.
   */
  public void setFrom(LayoutParams params) { from = params; }
  /**
   * @param params The {@link LayoutParams} to animate to.
   */
  public void setTo(LayoutParams params) { to = params; }
  
  /**
   * Creates a {@link RelativeLayoutParamsAnimation} that operates on the
   * given {@link View}
   * @param v The {@link View} which will be animated.
   */
  public RelativeLayoutParamsAnimation(View v) {
    this.view = v;
  }
  
  /**
   * Creates a {@link RelativeLayoutParamsAnimation} that operates on the
   * given {@link View}, animating from the views current parameters to
   * the given parameters.
   * @param v The {@link View} which will be animated.
   * @param to The {@link LayoutParams} to animate to.
   */
  public RelativeLayoutParamsAnimation(View v, LayoutParams to) {
    this.view = v;
    this.from = new LayoutParams(v.getLayoutParams());
    this.to = to;
  }
  
  /**
   * Creates a {@link RelativeLayoutParamsAnimation} that operates on the
   * given {@link View}, animating between the given parameters.
   * @param v The {@link View} which will be animated. 
   * @param from The {@link LayoutParams} to animate from.
   * @param to The {@link LayoutParams} to animate to.
   */
  public RelativeLayoutParamsAnimation(View v, LayoutParams from, LayoutParams to) {
    this.view = v;
    this.from = from;
    this.to = to;
  }
  
  @Override
  protected void applyTransformation(float interpolatedTime, Transformation t) {
    ViewGroup.LayoutParams existingParams = view.getLayoutParams();
    // Reuse the existing parameters if we can, otherwise create new ones.
    final LayoutParams viewParams =
        (existingParams instanceof LayoutParams) ?
            (LayoutParams) existingParams : new LayoutParams(from);
            
    viewParams.bottomMargin = Math.lerp(from.bottomMargin, to.bottomMargin, interpolatedTime);
    viewParams.height = Math.lerp(from.height, to.height, interpolatedTime);
    viewParams.leftMargin = Math.lerp(from.leftMargin, to.leftMargin, interpolatedTime);
    viewParams.rightMargin = Math.lerp(from.rightMargin, to.rightMargin, interpolatedTime);
    viewParams.topMargin = Math.lerp(from.topMargin, to.topMargin, interpolatedTime);
    viewParams.width = Math.lerp(from.width, to.width, interpolatedTime);
    view.setLayoutParams(viewParams);
    view.invalidate();
  }
}




Java Source Code List

com.raizlabs.baseutils.CompatibilityUtils.java
com.raizlabs.baseutils.IOUtils.java
com.raizlabs.baseutils.Logger.java
com.raizlabs.baseutils.Math.java
com.raizlabs.baseutils.StringUtils.java
com.raizlabs.baseutils.ThreadingUtils.java
com.raizlabs.baseutils.Wrapper.java
com.raizlabs.baseutils.examples.MainActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableExampleActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableListExampleActivity.java
com.raizlabs.baseutils.examples.simplegenericadapter.SimpleGenericAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewgroupadapter.ViewGroupAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewholderstrategy.SimpleViewHolderStrategyExampleActivity.java
com.raizlabs.collections.ListUtils.java
com.raizlabs.collections.MappableSet.java
com.raizlabs.collections.TransactionalHashSet.java
com.raizlabs.concurrent.BasePrioritizedRunnable.java
com.raizlabs.concurrent.ConcurrencyUtils.java
com.raizlabs.concurrent.PrioritizedRunnable.java
com.raizlabs.concurrent.Prioritized.java
com.raizlabs.content.sharing.SharingUtils.java
com.raizlabs.database.CursorIterable.java
com.raizlabs.database.CursorIterator.java
com.raizlabs.events.EventListener.java
com.raizlabs.events.Event.java
com.raizlabs.events.ProgressListener.java
com.raizlabs.events.SimpleEventListener.java
com.raizlabs.functions.Delegate.java
com.raizlabs.functions.Predicate.java
com.raizlabs.functions.Provider.java
com.raizlabs.graphics.ImageFactory.java
com.raizlabs.graphics.drawable.async.AsyncDrawableTask.java
com.raizlabs.graphics.drawable.async.AsyncDrawableUtils.java
com.raizlabs.graphics.drawable.async.AsyncDrawableWrapper.java
com.raizlabs.graphics.drawable.async.AsyncDrawable.java
com.raizlabs.graphics.drawable.async.BaseAsyncDrawableTask.java
com.raizlabs.imagecaching.ImageCache.java
com.raizlabs.imagecaching.PrefixedImageCacheAdapter.java
com.raizlabs.imagecaching.StubImageCache.java
com.raizlabs.json.JSONArrayParserDelegate.java
com.raizlabs.json.JSONHelper.java
com.raizlabs.synchronization.OneShotLock.java
com.raizlabs.tasks.RZAsyncTaskEvent.java
com.raizlabs.tasks.RZAsyncTaskListener.java
com.raizlabs.tasks.RZAsyncTask.java
com.raizlabs.util.observable.ObservableData.java
com.raizlabs.util.observable.ObservableListAdapter.java
com.raizlabs.util.observable.ObservableList.java
com.raizlabs.view.ViewCompatibility.java
com.raizlabs.view.animation.AnimationListenerWrapper.java
com.raizlabs.view.animation.RelativeLayoutParamsAnimation.java
com.raizlabs.view.animation.ResizeAnimation.java
com.raizlabs.widget.EvenLinearLayout.java
com.raizlabs.widget.ImageMixView.java
com.raizlabs.widget.SlideRevealLayout.java
com.raizlabs.widget.ViewUtils.java
com.raizlabs.widget.adapters.ListBasedAdapter.java
com.raizlabs.widget.adapters.SimpleGenericAdapter.java
com.raizlabs.widget.adapters.ViewGroupAdapter.java
com.raizlabs.widget.adapters.ViewHolderStrategyAdapter.java
com.raizlabs.widget.utils.SimpleViewHolderStrategy.java
com.raizlabs.widget.utils.ViewHolderStrategyConverter.java
com.raizlabs.widget.utils.ViewHolderStrategyUtils.java
com.raizlabs.widget.utils.ViewHolderStrategy.java