android gone动画_Android动画之淡入淡出
為了更好的說明Android動畫的淡入淡出效果,這里以一個場景為例: 界面上有兩個View 控件,兩個View交替顯示,當(dāng)一個View淡入顯示,另一個View淡出不可見。
我們把當(dāng)前要顯示的View叫showView, 要隱藏不可見的view叫hideView。
final View showView = findViewById(***)final View hideView = findViewById(***)
首先說淡入顯示,既然要顯示,那么View要設(shè)置為可見,要實現(xiàn)淡入的效果,就需要將透明度先設(shè)置為0
showView.setAlpha(0f);
showView.setVisibility(View.VISIBLE);
接下來就要調(diào)用showView.animate()方法來實現(xiàn)動畫效果,設(shè)置最終的透明度為1。就可以達(dá)到不可見->模糊->完全顯示
showView.animate()
.alpha(1f)
.setDuration(5000)
.setListener(null);
setDuration是設(shè)置動畫的持續(xù)時間,這里設(shè)置的是5秒。 setListener這里先緩一緩,最后我會說明這個方法的作用。
這樣showView的淡入效果就實現(xiàn)了,但是同時也必須在同一時間來完成hideView的淡出隱藏,否則兩個view就重疊了。
知道如何實現(xiàn)淡入,也就知道如何實現(xiàn)淡出了 - 將透明度由1變到0,最后將hideView設(shè)為不可見(在onAnimationEnd事件中設(shè)置), 調(diào)用hideView.animate()來實現(xiàn)動畫效果。就可以達(dá)到顯示->模糊->完全不可見
hideView.animate()
.alpha(0f)
.setDuration(mShortAnimationDuration)
.setListener(newAnimatorListenerAdapter() {
@Overridepublic voidonAnimationEnd(Animator animation) {
hideView.setVisibility(View.GONE);
}
});
好,目前為止,淡入淡出的效果已經(jīng)實現(xiàn),但是相信有細(xì)心的童鞋會發(fā)現(xiàn)如下細(xì)節(jié)
1 對于showView, 是先調(diào)用showView.setVisibility(View.VISIBLE)設(shè)置為可見, 然后才調(diào)用showView.animate()
對于hideView, 是先調(diào)用hideView.animate(),最后在onAnimationEnd事件中調(diào)用hideView.setVisibility(View.GONE);設(shè)置為不可見
2 showView為什么要調(diào)用setListener(null), 這跟我文章開頭提到的場景有關(guān),因為我們要實現(xiàn)的是兩個View交替淡入淡出顯示,所以當(dāng)前的showView就是上一次的hideView,而hideView是設(shè)置了listener了,并且實現(xiàn)的是設(shè)置view為不可見,所以必須清掉。
總結(jié)
以上是生活随笔為你收集整理的android gone动画_Android动画之淡入淡出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jmeter服务器测试项目,JMeter
- 下一篇: python教程下载百度云盘到手机_Py