am 77d94957: Merge "Adding small animation features" into jb-mr2-dev
* commit '77d94957d793aba16a1352d25d5555bf59fe74e7': Adding small animation features
This commit is contained in:
@@ -2477,6 +2477,11 @@ package android.animation {
|
||||
method public void setPropertyName(java.lang.String);
|
||||
}
|
||||
|
||||
public class RectEvaluator implements android.animation.TypeEvaluator {
|
||||
ctor public RectEvaluator();
|
||||
method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
|
||||
}
|
||||
|
||||
public class TimeAnimator extends android.animation.ValueAnimator {
|
||||
ctor public TimeAnimator();
|
||||
method public void setTimeListener(android.animation.TimeAnimator.TimeListener);
|
||||
|
||||
45
core/java/android/animation/RectEvaluator.java
Normal file
45
core/java/android/animation/RectEvaluator.java
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2013 The Android Open Source Project
|
||||
*
|
||||
* 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 android.animation;
|
||||
|
||||
import android.graphics.Rect;
|
||||
|
||||
/**
|
||||
* This evaluator can be used to perform type interpolation between <code>int</code> values.
|
||||
*/
|
||||
public class RectEvaluator implements TypeEvaluator<Rect> {
|
||||
|
||||
/**
|
||||
* This function returns the result of linearly interpolating the start and
|
||||
* end Rect values, with <code>fraction</code> representing the proportion
|
||||
* between the start and end values. The calculation is a simple parametric
|
||||
* calculation on each of the separate components in the Rect objects
|
||||
* (left, top, right, and bottom).
|
||||
*
|
||||
* @param fraction The fraction from the starting to the ending values
|
||||
* @param startValue The start Rect
|
||||
* @param endValue The end Rect
|
||||
* @return A linear interpolation between the start and end values, given the
|
||||
* <code>fraction</code> parameter.
|
||||
*/
|
||||
@Override
|
||||
public Rect evaluate(float fraction, Rect startValue, Rect endValue) {
|
||||
return new Rect(startValue.left + (int)((endValue.left - startValue.left) * fraction),
|
||||
startValue.top + (int)((endValue.top - startValue.top) * fraction),
|
||||
startValue.right + (int)((endValue.right - startValue.right) * fraction),
|
||||
startValue.bottom + (int)((endValue.bottom - startValue.bottom) * fraction));
|
||||
}
|
||||
}
|
||||
@@ -406,11 +406,17 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
private View[] mChildren;
|
||||
// Number of valid children in the mChildren array, the rest should be null or not
|
||||
// considered as children
|
||||
|
||||
private boolean mLayoutSuppressed = false;
|
||||
|
||||
private int mChildrenCount;
|
||||
|
||||
// Whether layout calls are currently being suppressed, controlled by calls to
|
||||
// suppressLayout()
|
||||
boolean mSuppressLayout = false;
|
||||
|
||||
// Whether any layout calls have actually been suppressed while mSuppressLayout
|
||||
// has been true. This tracks whether we need to issue a requestLayout() when
|
||||
// layout is later re-enabled.
|
||||
private boolean mLayoutCalledWhileSuppressed = false;
|
||||
|
||||
private static final int ARRAY_INITIAL_CAPACITY = 12;
|
||||
private static final int ARRAY_CAPACITY_INCREMENT = 12;
|
||||
|
||||
@@ -2564,7 +2570,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
exitHoverTargets();
|
||||
|
||||
// In case view is detached while transition is running
|
||||
mLayoutSuppressed = false;
|
||||
mLayoutCalledWhileSuppressed = false;
|
||||
|
||||
// Tear down our drag tracking
|
||||
mDragNotifiedChildren = null;
|
||||
@@ -4525,7 +4531,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
super.layout(l, t, r, b);
|
||||
} else {
|
||||
// record the fact that we noop'd it; request layout when transition finishes
|
||||
mLayoutSuppressed = true;
|
||||
mLayoutCalledWhileSuppressed = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5201,9 +5207,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
@Override
|
||||
public void endTransition(LayoutTransition transition, ViewGroup container,
|
||||
View view, int transitionType) {
|
||||
if (mLayoutSuppressed && !transition.isChangingLayout()) {
|
||||
if (mLayoutCalledWhileSuppressed && !transition.isChangingLayout()) {
|
||||
requestLayout();
|
||||
mLayoutSuppressed = false;
|
||||
mLayoutCalledWhileSuppressed = false;
|
||||
}
|
||||
if (transitionType == LayoutTransition.DISAPPEARING && mTransitioningViews != null) {
|
||||
endViewTransition(view);
|
||||
@@ -5211,6 +5217,24 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Tells this ViewGroup to suppress all layout() calls until layout
|
||||
* suppression is disabled with a later call to suppressLayout(false).
|
||||
* When layout suppression is disabled, a requestLayout() call is sent
|
||||
* if layout() was attempted while layout was being suppressed.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void suppressLayout(boolean suppress) {
|
||||
mSuppressLayout = suppress;
|
||||
if (!suppress) {
|
||||
if (mLayoutCalledWhileSuppressed) {
|
||||
requestLayout();
|
||||
mLayoutCalledWhileSuppressed = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user