Android 關於Activity的跳轉和finish時切換頁面動畫實現

來源:互聯網
上載者:User

標籤:

今天瀋陽斌子在做APP時,客戶的需求變更是在原有的程式上加入跳轉頁面的動畫切換,類似IPhone的左出右進的方式,返回時是相反的效果。我知道用兩種方式可以實現這樣的效果,一種就是通過在startActivity後執行overridePendingTransition方法進行動畫的切換,同樣finish也是一樣的。下面就是我封裝好的方法:

/** *  *  @Description    : 跳轉頁面的左出和右進的效果 *  @Method_Name    : startActivityAnim *  @param activity  *  @return         : void *  @Creation Date  : 2015-1-5 上午10:20:37  *  @version        : v1.00 *  @Author         : JiaBin  *  @Update Date    :  *  @Update Author  : JiaBin */public static void startActivityAnim(Activity activity, Class<?> cla) {Intent intent = new Intent();intent.setClass(activity, cla);activity.startActivity(intent);// 設定切換動畫,從右邊進入,左邊退出activity.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);}

那通過讀原來Coder的代碼(很頭痛~~~)發現,如果使用我的共通方法,是可以實現客戶的需求,但是更改的地方會很多,改起來很頭痛,於是想使用第二種方法,通過xml配置,讓每一個在AndroidManifest.xml中註冊的Activity都引用配置這樣就可以達到客戶的效果又可以最小的程度上對項目變更了。下面就貼出方法:

1.首先在style.xml中聲明如下代碼:

    <style name="AnimationActivity" parent="@android:style/Animation.Activity">        <item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>        <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>        <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>        <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>    </style>

2.在style.xml中聲明如下代碼:

    <style name="themeSetting">         <item name="android:windowAnimationStyle">@style/AnimationActivity</item>    </style>

3.將AndroidManifest.xml中每一個需要使用該效果的Activity的theme設定並選擇該選項,代碼如下:

<activity            android:name="com.nearprint.MainNewActivity"            android:label="@string/app_name"            android:screenOrientation="portrait"            android:theme="@style/themeSetting<span style="font-family: Arial, Helvetica, sans-serif;">" ></span>
以上三步就可以實現訪問跳轉Activity的動畫的切換問題,下面貼出相應的動畫檔案。

in_from_right.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_interpolator" >    <translate        android:duration="500"        android:fromXDelta="100%p"        android:toXDelta="0%p" /></set>

out_to_left.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_interpolator" >    <translate        android:duration="500"        android:fromXDelta="0%p"        android:toXDelta="-100%p" /></set>

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="100%p" android:toXDelta="0"android:duration="500" /><alpha android:fromAlpha="0.1" android:toAlpha="1.0"android:duration="500" /></set>

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="-100%p"android:duration="500" /><alpha android:fromAlpha="1.0" android:toAlpha="0.1"android:duration="500" /></set>

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="-100%" android:toXDelta="0"android:duration="500" /><alpha android:fromAlpha="0.1" android:toAlpha="1.0"android:duration="500" /></set>

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="100%"android:duration="500" /><alpha android:fromAlpha="1.0" android:toAlpha="0.1"android:duration="500" /></set>

以上就是需要用的片段代碼,有需要的自己弄一下,動畫效果可以自己寫,然後達到需求。

Android 關於Activity的跳轉和finish時切換頁面動畫實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.