前言
今天突然在一个应用中看到一个转场动画,蛮有意思的
退出动画
zoom_out.gif
退出动画
zoom_in.gif
咋一看,以为是一个zoomView的动画,网上搜了一下,使用转场动画就能做到,但是网上的有点不大适用,
这是从stackoverflow上找到的,但是不能控制时间,和设置像透明值等属性
ActivityOptionsCompat options = ActivityOptionsCompat.makeScaleUpAnimation(view, 0, 0,view.getWidth(), view.getHeight());
ActivityCompat.startActivity(MainActivity.this, intent, options.toBundle()); ```
还有一些从A-B,两个界面都会做zoom转场。稍微修改了下。
<pre>zoom_enter.xml</pre>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"> //动画插值器
<scale android:fromXScale="2.0" // x轴从两杯的地方开始
android:toXScale="1.0" // x轴缩放到1倍,即真实位置
android:fromYScale="2.0"// y轴从两杯的地方开始
android:toYScale="1.0" // y轴缩放到1倍,即真实位置
android:pivotX="50%p" //缩放位置 y轴的一半
android:pivotY="50%p" //缩放位置 y轴的一半
android:duration="850" /> //动画持续时间
</set>
<pre>zoom_out.xml</pre>
这里进入退出的时候不需要scale了,不然很奇怪
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top"> //定义动画zorder的变换
<alpha android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="850"/>
</set>
#使用
开始和进入的时候都加入这行代码, zoom_in 和 zoom_out的位置不要变
``` overridePendingTransition(R.animator.zoom_in,R.animator.zoom_out);```
#遇到的问题
- 在android studio 上加运行的时候,加了instan run ,导致有时修改后没有效果,需要卸载才有,当时纠结了好一阵
- [动画属性值](http://blog.csdn.net/yanbober/article/details/46481171)
网友评论