Merge change 26717 into eclair

* changes:
  Newer animations.
This commit is contained in:
Android (Google) Code Review
2009-09-23 20:04:44 -04:00
9 changed files with 135 additions and 8 deletions

View File

@@ -2825,6 +2825,17 @@
visibility="public"
>
</field>
<field name="detachWallpaper"
type="int"
transient="false"
volatile="false"
value="16843430"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="detailColumn"
type="int"
transient="false"
@@ -162482,6 +162493,17 @@
visibility="protected"
>
</method>
<method name="getDetachWallpaper"
return="boolean"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
<method name="getDuration"
return="long"
abstract="false"
@@ -162728,6 +162750,19 @@
<parameter name="listener" type="android.view.animation.Animation.AnimationListener">
</parameter>
</method>
<method name="setDetachWallpaper"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
<parameter name="detachWallpaper" type="boolean">
</parameter>
</method>
<method name="setDuration"
return="void"
abstract="false"

View File

@@ -175,6 +175,11 @@ public abstract class Animation implements Cloneable {
*/
private int mZAdjustment;
/**
* Don't animate the wallpaper.
*/
private boolean mDetachWallpaper = false;
private boolean mMore = true;
private boolean mOneMoreTime = true;
@@ -218,6 +223,8 @@ public abstract class Animation implements Cloneable {
setZAdjustment(a.getInt(com.android.internal.R.styleable.Animation_zAdjustment, ZORDER_NORMAL));
setDetachWallpaper(a.getBoolean(com.android.internal.R.styleable.Animation_detachWallpaper, false));
ensureInterpolator();
a.recycle();
@@ -514,6 +521,19 @@ public abstract class Animation implements Cloneable {
mZAdjustment = zAdjustment;
}
/**
* If detachWallpaper is true, and this is a window animation of a window
* that has a wallpaper background, then the window will be detached from
* the wallpaper while it runs. That is, the animation will only be applied
* to the window, and the wallpaper behind it will remain static.
*
* @param detachWallpaper true if the wallpaper should be detached from the animation
* @attr ref android.R.styleable#Animation_detachWallpaper
*/
public void setDetachWallpaper(boolean detachWallpaper) {
mDetachWallpaper = detachWallpaper;
}
/**
* Gets the acceleration curve type for this animation.
*
@@ -610,6 +630,14 @@ public abstract class Animation implements Cloneable {
return mZAdjustment;
}
/**
* Return value of {@link #setDetachWallpaper(boolean)}.
* @attr ref android.R.styleable#Animation_detachWallpaper
*/
public boolean getDetachWallpaper() {
return mDetachWallpaper;
}
/**
* <p>Indicates whether or not this animation will affect the transformation
* matrix. For instance, a fade animation will not affect the matrix whereas

View File

@@ -17,8 +17,22 @@
*/
-->
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper, without zooming the wallpaper itself. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper. -->
<!--
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator">
<scale android:fromXScale="2.0" android:toXScale="1.0"
@@ -26,6 +40,7 @@
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
-->
<!-- This version is a variation on the inter-activity slide that
also scales the wallpaper. -->

View File

@@ -17,8 +17,20 @@
*/
-->
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper, without zooming the wallpaper itself. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:detachWallpaper="true">
<scale android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper. The wallpaper here just stays fixed behind. -->
<!--
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:zAdjustment="top">
@@ -29,6 +41,7 @@
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
-->
<!-- This version is a variation on the inter-activity slide that
also scales the wallpaper. -->

View File

@@ -17,8 +17,20 @@
*/
-->
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper, without zooming the wallpaper itself. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:detachWallpaper="true">
<scale android:fromXScale=".5" android:toXScale="1.0"
android:fromYScale=".5" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
<!-- This version zooms the new non-wallpaper up off the wallpaper the
wallpaper. The wallpaper here just stays fixed behind. -->
<!--
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:zAdjustment="top">
@@ -29,6 +41,7 @@
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
-->
<!-- This version is a variation on the inter-activity slide that
also scales the wallpaper. -->

View File

@@ -17,8 +17,22 @@
*/
-->
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper, without zooming the wallpaper itself. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="1.0" android:toXScale="2.0"
android:fromYScale="1.0" android:toYScale="2.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
<!-- This version zooms the new non-wallpaper down on top of the
wallpaper. -->
<!--
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator">
<scale android:fromXScale="1.0" android:toXScale="2.0"
@@ -26,6 +40,7 @@
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
-->
<!-- This version is a variation on the inter-activity slide that
also scales the wallpaper. -->

View File

@@ -2639,6 +2639,9 @@
content for the duration of the animation. -->
<enum name="bottom" value="-1" />
</attr>
<!-- Special option for window animations: if this window is on top
of a wallpaper, don't animate the wallpaper with it. -->
<attr name="detachWallpaper" format="boolean" />
</declare-styleable>
<declare-styleable name="RotateAnimation">

View File

@@ -1170,6 +1170,7 @@
<public type="attr" name="detailColumn" />
<public type="attr" name="detailSocialSummary" />
<public type="attr" name="thumbnail" />
<public type="attr" name="detachWallpaper" />
<public type="style" name="Theme.Wallpaper" />
<public type="style" name="Theme.Wallpaper.NoTitleBar" />

View File

@@ -7320,18 +7320,22 @@ public class WindowManagerService extends IWindowManager.Stub
// are currently targeting.
if (mAttrs.type == TYPE_WALLPAPER && mLowerWallpaperTarget == null
&& mWallpaperTarget != null) {
if (mWallpaperTarget.mHasLocalTransformation) {
if (mWallpaperTarget.mHasLocalTransformation &&
mWallpaperTarget.mAnimation != null &&
!mWallpaperTarget.mAnimation.getDetachWallpaper()) {
attachedTransformation = mWallpaperTarget.mTransformation;
if (DEBUG_WALLPAPER && attachedTransformation != null) {
Log.v(TAG, "WP target attached xform: " + attachedTransformation);
}
}
if (mWallpaperTarget.mAppToken != null &&
mWallpaperTarget.mAppToken.hasTransformation) {
mWallpaperTarget.mAppToken.hasTransformation &&
mWallpaperTarget.mAppToken.animation != null &&
!mWallpaperTarget.mAppToken.animation.getDetachWallpaper()) {
appTransformation = mWallpaperTarget.mAppToken.transformation;
}
if (DEBUG_WALLPAPER && attachedTransformation != null) {
Log.v(TAG, "WP target attached xform: " + attachedTransformation);
}
if (DEBUG_WALLPAPER && appTransformation != null) {
Log.v(TAG, "WP target app xform: " + appTransformation);
if (DEBUG_WALLPAPER && appTransformation != null) {
Log.v(TAG, "WP target app xform: " + appTransformation);
}
}
}