前言
今天突然在一個應(yīng)用中看到一個轉(zhuǎn)場動畫,蠻有意思的
退出動畫
退出動畫
咋一看,以為是一個zoomView的動畫,網(wǎng)上搜了一下,使用轉(zhuǎn)場動畫就能做到,但是網(wǎng)上的有點不大適用,
這是從stackoverflow上找到的,但是不能控制時間,和設(shè)置像透明值等屬性
ActivityOptionsCompat options = ActivityOptionsCompat.makeScaleUpAnimation(view, 0, 0,view.getWidth(), view.getHeight());
ActivityCompat.startActivity(MainActivity.this, intent, options.toBundle()); ```
還有一些從A-B,兩個界面都會做zoom轉(zhuǎn)場。稍微修改了下。
<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"http:// y軸從兩杯的地方開始
android:toYScale="1.0" // y軸縮放到1倍,即真實位置
android:pivotX="50%p" //縮放位置 y軸的一半
android:pivotY="50%p" //縮放位置 y軸的一半
android:duration="850" /> //動畫持續(xù)時間
</set>
<pre>zoom_out.xml</pre>
這里進(jìn)入退出的時候不需要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>
#使用
開始和進(jìn)入的時候都加入這行代碼, zoom_in 和 zoom_out的位置不要變
``` overridePendingTransition(R.animator.zoom_in,R.animator.zoom_out);```
#遇到的問題
- 在android studio 上加運行的時候,加了instan run ,導(dǎo)致有時修改后沒有效果,需要卸載才有,當(dāng)時糾結(jié)了好一陣
- [動畫屬性值](http://blog.csdn.net/yanbober/article/details/46481171)