繁体   English   中英

Android动画背景(旋转,平移)

[英]Android Animation Background (Rotate, Translate)

我做我的第一个小游戏。 我使用的是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" />

抽象化

您目前拥有的方式:

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

最好的设置方法是通过抽象Activity组合 ,这与编程实践有关,而与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 ,默认情况下,您的新活动从旧活动开始,您不想将旧活动放在最前面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM