本文實例講述了Android開發(fā)之動畫實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
動畫分為三種:
逐幀動畫、布局動畫和控件動畫
控件動畫實現(xiàn)
通過重寫Animation的 applyTransformation (float interpolatedTime, Transformation t)函數(shù)來實現(xiàn)自定義動畫效果,另外一般也會實現(xiàn) initialize (int width, int height, int parentWidth, int parentHeight)函數(shù),這是一個回調(diào)函數(shù)告訴Animation目標(biāo)View的大小參數(shù),在這里可以初始化一些相關(guān)的參數(shù),例如設(shè)置動畫持續(xù)時間、設(shè)置Interpolator、設(shè)置動畫的參考點等。
OPhone在繪制動畫的過程中會反復(fù)的調(diào)用applyTransformation 函數(shù),每次調(diào)用參數(shù)interpolatedTime值都會變化,該參數(shù)從0漸變?yōu)?,當(dāng)該參數(shù)為1時表明動畫結(jié)束。通過參數(shù)Transformation 來獲取變換的矩陣(matrix),通過改變矩陣就可以實現(xiàn)各種復(fù)雜的效果。
下面舉例說明一個控件動畫:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Animation anim = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1) { v.setVisibility(View.GONE); } else { v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime); v.requestLayout();例子中,一個view的高度逐漸由原來的高度變?yōu)?。當(dāng)動畫結(jié)束之后,view消失。
希望本文所述對大家的Android程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選