我通过xml像旋转动画制作动画,用于活动过渡。第一部分是旋转和缩放动画,它工作以显示半旋转工作正常但当我添加它们的反向开始偏移时它们显示空白视图而不是动画...甚至没有显示动画的第一部分是工作正常..
当只有第一部分存在并且它正常工作时,这是xml代码..
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="-15"
android:toYScale="0.0" />
<scale
android:duration="2000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0"
android:toYScale="1" />
</set>
但是当我添加反向代码时,它一直是空白的......
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="-15"
android:toYScale="0.0" />
<scale
android:duration="2000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0"
android:toYScale="1" />
<rotate
android:startOffset="2000"
android:duration="2000"
android:fromDegrees="-15"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="0"
android:toYScale="0.0" />
<scale
android:startOffset="2000"
android:duration="2000"
android:fromXScale="0"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1" />
</set>
所以请你告诉我哪里出错......
答案 0 :(得分:4)
您无需对动画进行宣传即可实现相反的效果。您可以使用android:repeateMode = "reverse"和android:repeatCount = "1"
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="1"
android:repeatMode="reverse"
android:toDegrees="-15" />
<scale
android:duration="2000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="1"
android:repeatMode="reverse"
android:toXScale="0"
android:toYScale="1" />
</set>
您需要为repeatCount
和repeatMode
动画设置scale
和rotate
。很遗憾,您无法直接在set
实施中AnimationSet
bug属性中直接使用它。
但此动画仅适用于一项活动。如果您确实希望第一个活动消失,然后显示第二个活动,则需要将动画拆分为两个部分。第一部分将包含rotate
和scale
直接动画,第二部分将反转rotate
和scale
动画。所以基本上只需要将set
四个动画分成两个文件。然后你需要使用这两个动画来开始新的活动:
overridePendingTransition(R.anim.direct, R.anim.reversed);