中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Android5.0之Activity的轉場動畫的示例

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

站在用戶的角度思考問題,與客戶深入溝通,找到始興網(wǎng)站設計與始興網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋始興地區(qū)。

1.舊轉場動畫回顧

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

startActivity(new Intent(this, Main3Activity.class)); 
    overridePendingTransition(R.anim.in,R.anim.out); 

對應的入場和出場動畫就是兩個補間動畫,如下:

入場動畫:

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

出場動畫:

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

這種動畫是針對整個Activity而言的,無法設置Activity中元素的入場/出場動畫。如果想要設置Activity中元素的出場/入場動畫可以通過設置布局上元素的元素的出/入場動畫來實現(xiàn)。但這無疑增加了工作量。

2 5.0之后的轉場動畫

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

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

1.分解

先來看一張效果圖:

Android5.0之Activity的轉場動畫的示例

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

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

復制代碼 代碼如下:

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

添加完成之后,在Main2Activity中設置該Activity的進出場動畫即可:

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

OK,就是這么簡單,哦,對了,大家一定要記得在styles.xml文件中添加下面一行代碼,表示激活Activity中元素的過渡效果:

<item name="android:windowContentTransitions">true</item> 

2.滑動進入

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

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

顯示效果如下:

Android5.0之Activity的轉場動畫的示例

3.淡入淡出

Main2Activity修改代碼如下:

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

顯示效果如下:

Android5.0之Activity的轉場動畫的示例

2.2 共享元素動畫

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

Android5.0之Activity的轉場動畫的示例

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

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

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

復制代碼 代碼如下:

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

還是上面那種啟動方式的重載方法,只不過這里多了兩個參數(shù),view表示MainActivity中的共享元素(就是那個Button),第二個參數(shù)表示布局文件中transitionAnimation屬性的值。OK,就這么簡單。

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

startActivity(new Intent(this, Main2Activity.class), 
        ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(((View) iv1),"myiv"), create(((View) textView),"mytv")).toBundle()); 

Pair.create方法中有兩個參數(shù),第一個是共享元素的實例(注意要是View類型),第二個參數(shù)是該View的transitionAnimation屬性的值。

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站標題:Android5.0之Activity的轉場動畫的示例
URL標題:http://www.rwnh.cn/article22/gdgccc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站排名、App設計、手機網(wǎng)站建設、標簽優(yōu)化、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
都昌县| 皮山县| 黑水县| 隆林| 朝阳市| 望都县| 浦北县| 定日县| 邓州市| 伊金霍洛旗| 正阳县| 大港区| 武邑县| 塘沽区| 凯里市| 贵州省| 武夷山市| 原平市| 西青区| 通河县| 砚山县| 洪湖市| 益阳市| 岳阳县| 深泽县| 陕西省| 淳安县| 延津县| 九龙坡区| 抚州市| 高阳县| 诸城市| 浦北县| 澄城县| 古交市| 瑞金市| 阿克陶县| 栖霞市| 淮阳县| 西乌| 体育|