Activity和Fragment的跳轉(zhuǎn)動(dòng)畫

1.使用overridePendingTransition方法實(shí)現(xiàn)Activity跳轉(zhuǎn)動(dòng)畫

botton_in

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="100%p"
    android:toYDelta="0%p"
    android:duration="400">
</translate>

bottom_out

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="0%p"
    android:toYDelta="100%p"
    android:duration="400">
</translate>
    public void go(View view){
        Intent intent = new Intent(this,SixActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.bottom_in,R.anim.bottom_out);
    }

overridePendingTransition方法中第一個(gè)參數(shù)是指要跳轉(zhuǎn)的Activity的進(jìn)入動(dòng)畫,第二個(gè)參數(shù)指當(dāng)前Activity的離開動(dòng)畫.


ezgif-5-71dbfb92fc.gif

如果不想要某個(gè)動(dòng)畫參數(shù)直接傳0即可

        Intent intent = new Intent(this,SixActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.bottom_in,0);

2.使用style的方式定義Activity的切換動(dòng)畫

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowAnimationStyle">@style/BOTTOM_TO_TOP</item>
    </style>

    <style name="BOTTOM_TO_TOP">
        <item name="android:activityOpenEnterAnimation">@anim/bottom_in</item>// 用于設(shè)置打開新的Activity并進(jìn)入新的Activity展示的動(dòng)畫
        <item name="android:activityOpenExitAnimation">@anim/bottom_out</item>// 用于設(shè)置打開新的Activity并銷毀之前的Activity展示的動(dòng)畫
        <item name="android:activityCloseEnterAnimation">@anim/bottom_in</item>// 用于設(shè)置關(guān)閉當(dāng)前Activity進(jìn)入上一個(gè)Activity展示的動(dòng)畫
        <item name="android:activityCloseExitAnimation">@anim/bottom_out</item>// 用于設(shè)置關(guān)閉當(dāng)前Activity時(shí)展示的動(dòng)畫
    </style>
ezgif-5-9642138643.gif

3.使用ActivityOptions切換動(dòng)畫實(shí)現(xiàn)Activity跳轉(zhuǎn)動(dòng)畫(注意:API21以上)

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 設(shè)置contentFeature,可使用切換動(dòng)畫
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        Transition explode = TransitionInflater.from(this).inflateTransition(android.R.transition.explode);
        getWindow().setEnterTransition(explode);
        setContentView(R.layout.activity_five);
    }

    public void go(View view){
        Intent intent = new Intent(this,SixActivity.class);
        startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
    }
ezgif-5-d06608db62.gif

4.通過AndroidManifest單獨(dú)設(shè)置某個(gè)Activity的跳轉(zhuǎn)動(dòng)畫

        <activity android:name=".SixActivity" android:theme="@style/myTheme"/>
    <style name="myTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowAnimationStyle">@style/BOTTOM_TO_TOP</item>
    </style>

    <style name="BOTTOM_TO_TOP">
        <item name="android:activityOpenEnterAnimation">@anim/bottom_in</item>// 用于設(shè)置打開新的Activity并進(jìn)入新的Activity展示的動(dòng)畫
        <item name="android:activityOpenExitAnimation">@anim/bottom_out</item>// 用于設(shè)置打開新的Activity并銷毀之前的Activity展示的動(dòng)畫
        <item name="android:activityCloseEnterAnimation">@anim/bottom_in</item>// 用于設(shè)置關(guān)閉當(dāng)前Activity進(jìn)入上一個(gè)Activity展示的動(dòng)畫
        <item name="android:activityCloseExitAnimation">@anim/bottom_out</item>// 用于設(shè)置關(guān)閉當(dāng)前Activity時(shí)展示的動(dòng)畫
    </style>
ezgif-5-3d8449afbc.gif

5.Fragment之間的跳轉(zhuǎn)動(dòng)畫,Activity之間跳轉(zhuǎn)有默認(rèn)的跳轉(zhuǎn)動(dòng)畫咙崎,而Fragment需要自己定義

    public void addFragment(Fragment fragment){
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.setCustomAnimations(R.anim.bottom_in,R.anim.bottom_out);
        transaction.replace(R.id.fragment_container,fragment).addToBackStack("").commitAllowingStateLoss();
    }
    public void removeFragment(){
        getSupportFragmentManager().popBackStack();
    }

transaction.setCustomAnimations方法中第一個(gè)參數(shù)是指添加的fragment的進(jìn)入動(dòng)畫褪猛,第二個(gè)參數(shù)是指當(dāng)前framgnet的隱藏動(dòng)畫


ezgif-5-92621abe1a.gif
 transaction.setCustomAnimations(R.anim.bottom_in,R.anim.bottom_out,R.anim.bottom_in,R.anim.bottom_out);

transaction.setCustomAnimations方法重載方法中還有四個(gè)參數(shù)的方法,其中第三個(gè)參數(shù)代表返回上一個(gè)fragment時(shí)進(jìn)入的動(dòng)畫伊滋,第四個(gè)參數(shù)代表返回上一個(gè)fragment時(shí)要退出的fragment的退出動(dòng)畫.


ezgif-5-fc19d23d6e.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碳却,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子笑旺,更是在濱河造成了極大的恐慌昼浦,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筒主,死亡現(xiàn)場離奇詭異关噪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)乌妙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門使兔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人藤韵,你說我怎么就攤上這事泽艘√焓裕” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵鞋真,是天一觀的道長海诲。 經(jīng)常有香客問我蚯斯,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮僻弹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘退敦。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布织咧。 她就那樣靜靜地躺著,像睡著了一般晌该。 火紅的嫁衣襯著肌膚如雪中符。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天晨抡,我揣著相機(jī)與錄音,去河邊找鬼。 笑死悲关,一個(gè)胖子當(dāng)著我的面吹牛西土,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼帝雇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了畸肆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤徽级,失蹤者是張志新(化名)和其女友劉穎碳锈,沒想到半個(gè)月后贸人,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铛只,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袍暴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耗式。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庇配,到底是詐尸還是另有隱情啸澡,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布产徊,位于F島的核電站蜀细,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸包颁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至佃迄,卻和暖如春泼差,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呵俏。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工堆缘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人普碎。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓吼肥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親麻车。 傳聞我的和親對象是個(gè)殘疾皇子缀皱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)收集,非原創(chuàng) 一绪氛、 簡介 在Android開發(fā)過程中唆鸡,經(jīng)常會(huì)碰到Activity之間的切換效果的問題,下面介紹...
    yyg閱讀 16,357評論 4 39
  • 目錄介紹 1.業(yè)務(wù)需求:Activity正反兩面枣察,沿中心X,Y軸旋轉(zhuǎn)180度1.0 具體業(yè)務(wù)需求1.1 用3D效果...
    楊充211閱讀 6,154評論 0 8
  • 很多以前熱愛的卻錯(cuò)過的事情再次出現(xiàn)的時(shí)候序目,往往都沒有當(dāng)年的熱情去追逐臂痕。熱愛的網(wǎng)游因?yàn)橐郧凹议L管的嚴(yán),不能繼續(xù)玩下去...
    鄰里_閱讀 698評論 0 0
  • 一縷午后的斜陽射來,人們百無聊賴的工作著叛赚,懶散著澡绩,誰也不知道此刻在甘肅麗晶百貨大廈8樓狹窄的窗臺外沿上一個(gè)18歲的...
    柚孑君閱讀 1,824評論 15 36
  • 穿越事镣,這個(gè)科幻步鉴、言情、歷史、動(dòng)作甚至于武打相結(jié)合的題材氛琢,吸引了不少迷妹喊递,我就是其中之一。從我看過的百部作品中可...
    柚號閱讀 389評論 0 0