我检查了API代码附带的过渡动画,我找到了动画zoom_enter和zoom_exit,其中活动1下沉IN以显示活动2.我需要反过来。我需要活动2从内部缩小并进入顶部。 (我希望你能得到我)。这种类型的动画在iphone屏幕转换时是相同的。
以下代码是我不需要的效果。 这是zoom_enter.xml的代码
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
这是zoom_exit.xml的代码
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
然后在startActivity之后我调用下面的方法:
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
有人可以建议我如何更改上述文件以解释屏幕转换?
答案 0 :(得分:11)
在zoom_enter.xml中尝试此操作,并从zoom_exit.xml中删除动画。你会看到更好的效果。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="0.0" android:toXScale="1.0"
android:fromYScale="0.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
希望这有帮助。
答案 1 :(得分:2)
overridePendingTransition(zoom_enter_new,zoom_exit_actual);
第一个参数是传入的Activity(所以新的) 第二个参数用于传出活动(实际)
所以如果你想在视频中产生相同效果 实际活动是立即隐藏,而第二个参数需要设置为0(表示没有动画)
overridePendingTransition(zoom_enter_new,0);
为了使新活动像视频一样,这是解释的动画xml资源(res / anim / dir中的zoom_enter_new.xml)
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<!--scale view fromX fromY are the starting point (.5 is 50% of scale, )-->
<!--scale view toX and toY are the final state (1 is 100%)-->
<!--pivot is the center of animation, so in your case the zoomin on the video is from the exact center (50% pivot x, 50% pivot Y)-->
<scale android:fromXScale=".5" android:toXScale="1"
android:fromYScale=".5" android:toYScale="1"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_longAnimTime" />
<!-- alpha animation is made at the same time of scale animation, and for me make a better and smooth result, alpha 0 is full trasparent, 1 is the normal state. The final alpha state of the activity after this animation is 1, so pay attention toAlpha must be 1 if you don't want glitch-->
<alpha android:fromAlpha="0.5" android:toAlpha="1"
android:duration="@android:integer/config_longAnimTime"/>
</set>
overridePendingTransition(R.anim.zoom_enter_new,0);
托比亚