为什么我的旋转动画在应用于Activity转换时都很难?

Tho*_*mas 5 animation android android-activity

以下动画应该做什么?

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="1000" />
Run Code Online (Sandbox Code Playgroud)

很容易.它应代表围绕中心的顺时针旋转.只需旋转一下,然后停下来.对?

当我将它应用于View时,它确实......

但是当我为活动转换设置动画时,会发生完全不同的事情.活动开始逆时针旋转,但同时它飞离屏幕的右上角.然后它返回,仍然逆时针旋转,现在倒置,然后飞离屏幕的左下角.最后,它回来并直立结束旋转.

不管是什么我指定pivotXpivotY,行为始终是相同的.它们似乎完全被忽略了.无论哪种方式,事情肯定不会围绕任何固定的枢轴旋转!

这是什么废话?这是一个错误吗?

为了完整起见,我将此动画保存为res/anim/spin.xml,并按如下方式调用它:

startActivity(intent);
overridePendingTransition(R.anim.spin, R.anim.spin);
Run Code Online (Sandbox Code Playgroud)

(对于in和out使用相同的动画没有任何意义,但这是最小的例子.)


更新:演示应用程序以重现此问题

我已经整理了一个最小的Android项目来演示这个问题.主要活动如下:

package com.example.animtest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;

public class MainActivity extends Activity {

    private View rootView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        rootView = getLayoutInflater().inflate(R.layout.main, null);
        setContentView(rootView);
    }

    public void animateRootView(View view) {
        Animation spin = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.spin);
        rootView.setAnimation(spin);
        spin.start();
    }

    public void animateActivity(View view) {
        Intent intent = new Intent();
        intent.setClassName("com.example.animtest", "com.example.animtest.MainActivity");
        startActivity(intent);
        overridePendingTransition(R.anim.spin, R.anim.spin);
    }

}
Run Code Online (Sandbox Code Playgroud)

以下是包含项目源可运行APK文件ZIP 文件.在Nexus One,Android 2.2.2上测试过.

dus*_*n.b 1

已知问题..直到 2.3.4 为止什么也没做:( http://code.google.com/p/android/issues/detail?id=10402