Android动画背景(旋转,翻译)

时间:2013-02-12 22:28:56

标签: android background rotation translate-animation

我制作了我的第一个小游戏。我使用Android提供的旋转动画。 我在每个类文件中编写此代码:

this.overridePendingTransition(R.anim.rotate, R.anim.translate);

这是最好的方式,还是可以在我的整个应用程序中设置它? 而且,如果我使用这个动画,新的活动“旋转”到屏幕非常好,但背景变黑。 (我想因为翻译动画?!)我如何设置自己的背景?

翻译动画的代码是:

<?xml version="1.0" encoding="utf-8"?>
<translate>

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="200%"
    android:toXDelta="0%"
    android:fromYDelta="200%"
    android:toYDelta="0%"
    android:duration="1000"
    android:zAdjustment="top" />

和旋转动画:

<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="90"
    android:toDegrees="0"
    android:pivotX="-5%"
    android:pivotY="5%p"
    android:duration="1000" />

1 个答案:

答案 0 :(得分:0)

抽象

目前的方式:

overridePendingTransition(R.anim.rotate, R.anim.translate);

设置此方法的最佳方式是通过摘要Activitycomposition,这与编程实践相比,特别是Android。

短暂存在:

public abstract BaseActivity extends FragmentActivity{
  @Override
  protected onCreate(Bundle savedInstance){
    overridePendingTransition(R.anim.rotate, R.anim.translate);
  }
}

然后你的具体Activity扩展了这个。

public class MyActivity extends BaseActivity{}

动画

因此,当前设置意味着您的新Activity将在中旋转,而您的旧活动(应该)将翻译为

看到你将旧的活动翻译出来(不在),动画有点不对劲。 用于翻译的正确翻译动画将类似于:

<translate
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXDelta="0%"
  android:toXDelta="100%"
  android:fromYDelta="0%"
  android:toYDelta="0%"
  android:duration="1000" />

将中心屏幕中的退出活动转换为右侧滑动。

同时忽略zAdjustment,默认情况下,您的新活动会从旧活动开始,您不想将旧活动留在最顶层。