Android5.0Activity轉(zhuǎn)場動畫

      網(wǎng)友投稿 820 2022-05-29

      Activity的轉(zhuǎn)場動畫很早就有,但是太過于單調(diào),樣式也不好看,于是Google在Android5.0之后,又推出的新的轉(zhuǎn)場動畫,效果還是非常炫的,今天我們一起來看一下。

      1.舊轉(zhuǎn)場動畫回顧

      首先我們還是先來看看在5.0之前如果我們想要在啟動Activity時使用動畫該怎么做呢?

      startActivity(new Intent(this, Main3Activity.class));

      overridePendingTransition(R.anim.in,R.anim.out);

      入場動畫:

      android:toYDelta="0"

      android:fromYDelta="100%"

      android:duration="1500"/>

      android:duration="1500"

      android:fromYDelta="0"

      android:toYDelta="-100%"/>

      Android5.0之Activity的轉(zhuǎn)場動畫

      2 5.0之后的轉(zhuǎn)場動畫

      Android5.0之后Activity的出入場動畫總體上來說可以分為兩種,一種就是分解、滑動進入、淡入淡出,另外一種就是共享元素動畫,下面我們分別就這兩種動畫進行說明。

      2.1 分解、滑動進入、淡入淡出

      1.分解

      先來看一張效果圖:

      就是這樣一種效果,那我們接下來看看這種效果要怎么實現(xiàn)。

      首先,把之前啟動Activity的代碼改成下面的寫法:

      startActivity(new Intent(this, Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

      getWindow().setEnterTransition(new Explode().setDuration(2000));

      getWindow().setExitTransition(new Explode().setDuration(2000));

      true

      2.滑動進入

      有了上面的步驟,再設(shè)置滑動進入就很簡單了,只需要修改Main2Activity中的兩行代碼即可:

      getWindow().setEnterTransition(new Slide().setDuration(2000));

      getWindow().setExitTransition(new Slide().setDuration(2000));

      3.淡入淡出

      Main2Activity修改代碼如下:

      getWindow().setEnterTransition(new Fade().setDuration(2000));

      getWindow().setExitTransition(new Fade().setDuration(2000));

      2.2 共享元素動畫

      共享元素動畫是一個非常神奇的東東,我們先來看看效果:

      可能這個Gif動畫還不太清晰,我再來解釋一下,在MainActivity和Main2Activity里邊都有一個Button,只不過一個大一個小,從MainActivity跳轉(zhuǎn)到Main2Activity時,我并沒有感覺到Activity的跳轉(zhuǎn),只是覺得好像第一個頁面的Button放大了,同理,當(dāng)我從第二個頁面回到第一個頁面時,也好像Button變小了。OK,這就是我們的Activity共享元素。

      當(dāng)兩個Activity中有同一個控件的時候,我們便可以采用共享元素動畫。

      使用共享元素動畫的時候,我們需要首先給MainActivity和Main2Activity中的兩個button分別添加android:transitionName="mybtn"屬性,并且該屬性的值要相同,這樣系統(tǒng)才知道這兩個控件是共享元素。設(shè)置完成之后,接下來就是啟動Activity的代碼了,如下:

      startActivity(new Intent(this,Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this,view,"mybtn").toBundle());

      這時有的筒子可能有疑問了,那我如果兩個頁面中有多個共享元素該怎么辦呢?簡單,android:transitionName屬性還像上面一樣設(shè)置,然后在啟動Activity時我們可以通過Pair.create方法來設(shè)置多個共享元素,如下:

      startActivity(new Intent(this, Main2Activity.class),

      ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(((View) iv1),"myiv"), create(((View) textView),"mytv")).toBundle());

      就這么簡單,筒子們快速嘗試一下吧。

      以上。

      Android HTTP

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Linux虛擬機和Window本地共享文件夾用于PHP項目調(diào)試
      下一篇:Python一秒搭建ftp服務(wù)器,幫助你在局域網(wǎng)共享文件
      相關(guān)文章
      亚洲AV无码不卡在线观看下载| 色婷五月综激情亚洲综合| 四虎亚洲精品高清在线观看| 亚洲VA中文字幕无码毛片| 亚洲日韩在线观看| 国产成人综合久久精品亚洲| 亚洲国产精品日韩在线| 亚洲视屏在线观看| 亚洲天堂一区二区| 99久久亚洲综合精品成人网| 久久久久亚洲av无码专区喷水 | 亚洲中文无韩国r级电影| 亚洲sm另类一区二区三区| 亚洲国产成人久久精品大牛影视| 天堂亚洲国产中文在线| 亚洲一线产区二线产区区| 色偷偷亚洲女人天堂观看欧| 在线观看日本亚洲一区| 亚洲人成色777777老人头| 亚洲色大成WWW亚洲女子| 亚洲色偷偷综合亚洲av78| 亚洲AV无码专区亚洲AV桃| 亚洲av永久无码天堂网| 日日摸日日碰夜夜爽亚洲| vvvv99日韩精品亚洲| 亚洲成人国产精品| 亚洲午夜爱爱香蕉片| 亚洲乱码国产一区网址| 中文亚洲AV片在线观看不卡| 国产亚洲高清不卡在线观看| 亚洲国产精品自在在线观看| 亚洲国产精品lv| 亚洲欧洲国产视频| 欧洲 亚洲 国产图片综合| 亚洲人成色777777精品| 一本色道久久88综合亚洲精品高清| 亚洲精品美女久久久久99小说| 国产成人亚洲精品狼色在线| 亚洲国产精品无码一线岛国| 亚洲最大福利视频网站| 亚洲国产模特在线播放|