我制作了我的第一个小游戏。我使用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" />
答案 0 :(得分:0)
目前的方式:
overridePendingTransition(R.anim.rotate, R.anim.translate);
设置此方法的最佳方式是通过摘要Activity
或composition,这与编程实践相比,特别是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
,默认情况下,您的新活动会从旧活动开始,您不想将旧活动留在最顶层。