最近專案不急,所以有時間來把最近學習的內容總結一下,並將知識做個全方面的總結,有助於自己在工作中更加深入的體會知識內容,今天就把學習的乙個簡單的登陸動畫效果做個簡單的實現,做成了乙個gif圖的形式,由於gif圖有大小限制,所以只能看這麼模糊的了。。。。
1.在這裡我對這個登陸介面動畫做個簡單的描述,這裡是將乙個小球從頂部向下移動到底部,並且伴隨著小球大小的變化,所以在下降的過程中伴隨著平移、縮放兩種動畫。
//第一部分的動畫效果展示
//平移動畫
objectanimator animator = objectanimator.offloat(ivball, "translationy", 0, 1200);
//設定動畫時間
animator.setduration(2500);
animator.setinterpolator(new anticipateovershootinterpolator());
//放大動畫
objectanimator scale = objectanimator.offloat(ivball, "scalex", 0.5f, 1.5f);
scale.setduration(2500);
//放大y軸的大小
objectanimator scaley = objectanimator.offloat(ivball, "scaley", 0.5f, 1.5f);
scaley.setduration(2500);
注意部分:這裡的我是利用屬性動畫實現的效果,順便說下屬性動畫和檢視動畫的區別:簡單的可以理解為屬性動畫改變的是控制項的屬性值,即如果你移動控制項,那麼控制項的位置也發生了改變;檢視動畫則是對於視覺上發生了位置的偏移,並沒有造成屬性的改變,可以理解為控制項視覺效果的移動。
2.接下來是要展示乙個上下跳動的動畫效果,這裡要設定的是乙個迴圈三次執行的動畫,並且伴隨著動畫的進行,小球要變成你需要的圖示,這裡主要是監聽動畫的執行過程,在執行中途替換資源。
//第二部分的動畫效果展示
//上下跳動三次的動畫
objectanimator txanimation = objectanimator.offloat(ivball, "translationy", 1200, 1000);
//設定時常為1秒鐘
txanimation.setduration(1000);
txanimation.setrepeatmode(valueanimator.reverse);
//設定重複三次
txanimation.setrepeatcount(3);
//設定在動畫執行中小球變為圖示
//小球迴圈動畫的回應
txanimation.addlistener(new animator.animatorlistener()
@override
public void onanimationend(animator animation)
@override
public void onanimationcancel(animator animation)
@override
public void onanimationrepeat(animator animation)
}});
3.然後是乙個向上的並且圖示變大的動畫效果,這個向上的動畫和1是差不多的方法,只是反過來執行而已,接下來就是登陸布局的顯示,在圖示上公升的過程中,延遲載入登陸介面的動畫,做到乙個差異性展示。
//第三部分**展示
//將圖示放大到1.5倍
objectanimator scaledh = objectanimator.offloat(ivball, "scaley", 1.5f, 3f);
scaledh.setduration(2000);
objectanimator scaled = objectanimator.offloat(ivball, "scalex", 1.5f, 3f);
scaled.setduration(2000);
//設定移動的距離
objectanimator animatorball = objectanimator.offloat(ivball, "translationy", 1200, 0);
animatorball.setduration(2000);
//設定對話方塊開啟的順序
objectanimator llanimation = objectanimator.offloat(lluserinfo, "scalex", 0, 1);
llanimation.setstartdelay(1500);
//延遲0.5s載入登入框資訊
llanimation.setduration(500);
//y軸移動距離
objectanimator llanimationy = objectanimator.offloat(lluserinfo, "scaley", 0, 1);
llanimationy.setstartdelay(1500);
//延遲0.5s載入登入框資訊
llanimationy.setduration(500);
//設定登入框顯示
llanimation.addlistener(new animator.animatorlistener()
}@override
public void onanimationend(animator animation)
@override
public void onanimationcancel(animator animation)
@override
public void onanimationrepeat(animator animation)
});
//注意事項:這裡的步驟和1基本相似,但是我們在顯示登入框的時候做了調整,當圖示移動0.5s之後,我們再將登入框顯示,並去做放大動畫(0.5——>1),這樣來形成乙個差異感,同時監聽登入框開始時的動畫,來顯示登入框。
4.當圖示上公升完成的時候,我們需要將圖示向左平移,然後顯示登陸的標題資訊。
//將圖示左移,並顯示內容
objectanimator leftanimator = objectanimator.offloat(ivball, "translationx", 0, -300);
//延遲兩秒,讓上述動畫執行完成
leftanimator.setstartdelay(2000);
leftanimator.setduration(500);
//最後一步沒什麼難度,就是將圖示移動到左側,並在動畫前顯示標題內容。
總結:這裡我主要用的時屬性動畫去做的效果,當然檢視動畫同樣可以作出相同的效果。最後我要說的一點是如何將這些單獨的動畫組合起來:
//設定向下的動畫
animatorset set = new animatorset();
animatorset.builder builder = set.play(animator);
builder.with(a).with(b).before(c).after(d);
set.start();
這裡我做了乙個簡單的set,在上述的**中執行順序為d到ab(同時執行)到c,當上乙個動畫未執行時,或者未執行完成時,下乙個動畫是無法執行的,通過builder和set我們就可以將動畫繫結起來了,完成最終想要實現的動畫效果了。 《名偵探柯南》動畫登陸bilibili
4月30日晚間,bilibili官方宣布 名偵探柯南 tv動畫正式登陸bilibili。資料顯示,名偵探柯南 改編自青山剛昌創作的 於 週刊少年sunday 上的同名漫畫,於1996年1月8日開播。這是一部經典的童年系列動畫之一,它主要講述了主角工藤新一被黑衣人偷襲之後,在昏迷狀態下被灌下毒藥變成小...
Web動畫 SVG 線條動畫入門
通常我們說的 web 動畫,包含了三大類。個人認為 3 種動畫各有優劣,實際應用中根據掌握情況作出取捨,本文討論的是我認為 svg 中在實際專案中非常有應用價值 svg 線條動畫。svg 線條動畫,在一些特定的場合下可以解決使用 css 無法完成的動畫。尤其是在進度條方面,看看最近專案裡的乙個小需求...
屬性動畫入門
public class basesettingactivity extends activity if e1.getrawx e2.getrawx 0 if e1.getrawx e2.getrawx 0 return super.onfling e1,e2,velocityx,velocityy...