輕輕松松為你的Android App加點特效

421993780 8年前發布 | 19K 次閱讀 Android Android開發 移動開發

前言

今天突然在一個應用中看到一個轉場動畫,蠻有意思的

退出動畫

進入動畫

咋一看,以為是一個zoomView的動畫,網上搜了一下,使用轉場動畫就能做到,但是網上的有點不大適用,
這是從stackoverflow上找到的,但是不能控制時間,和設置像透明值等屬性

ActivityOptionsCompat options = ActivityOptionsCompat.makeScaleUpAnimation(view, 0, 0,view.getWidth(), view.getHeight());
ActivityCompat.startActivity(MainActivity.this, intent, options.toBundle());

還有一些從A-B,兩個界面都會做zoom轉場。稍微修改了下。

 

zoom_enter.xml
<?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" /> //動畫持續時間
</set>

 

zoom_out.xml


這里進入退出的時候不需要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的變換
  <!--<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="850"/>
</set>

使用

開始和進入的時候都加入這行代碼, zoom_in 和 zoom_out的位置不要變

overridePendingTransition(R.animator.zoom_in,R.animator.zoom_out);

 

遇到的問題

  • 在android studio 上加運行的時候,加了instan run ,導致有時修改后沒有效果,需要卸載才有,當時糾結了好一陣
  • 動畫屬性值


 

閱讀原文

 本文由用戶 421993780 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!