Android 仿訂單出票效果 (附DEMO)

2021-06-20 19:47:14 字數 1977 閱讀 4728

發現裡面有個火車票的出票效果,發現可以優化下:

baseanimation內的仿出票效果

可是它的出的票的布局高度啥都是寫死的,通過這個思路,我便想到要做個類似於資料是通過網路獲取,高度不一定的listview的訂單出票效果。

一.  思路:

1)疊在布局上層的是訂單資訊,而在下層的就是訂單內選單的詳細條目,詳細條目的布局是置於布局最底層,並且在訂單資訊相對位置下方,這裡使用了framelayout來處 理 詳細條目布局。

2)出票的詳細條目列表採用了listview,它的動畫初始位置要通過計算listview的總高度進行計算獲取,之後通過translateanimation 進行animation動畫。

3)採用執行緒來模擬網路獲取延遲的效果。

二.  碰到解決的問題:

1)碰到乙個問題,就是如果資料一多,超過了一螢幕,在動畫過程中動畫銜接效果就很差,並有可能出現斷層效果。

解決:通過重寫listview,計算高度,並且在listview 外面巢狀了一層scrollview,這樣便可以解決這樣的問題。

2) 如果在訂單資訊布局下方直接放置乙個listview的話,這樣,動畫時候,listview就會蓋在訂單資訊上方。

解決:listview外層一定要巢狀一層布局,並且設定在訂單資訊下方,這樣便不會產生上述問題。

3)由於訂單底部

一開始就是出現的,並且在資料重新整理後跟隨listview一起下滑。

解決:採用listview的addfooterview(底部view)方法,把它新增到listview底部,在開始新增完畢後就直接初始化讓listview.setadapter(null);

這樣便在開始底部就顯示出來了。

4)如何去計算listview的總高度

解決:本demo採用了2種方式,

第一種:鑑於訂單中每個item的布局都是固定的,於是在布局中設定item的高度為固定值,之後乘以listadapter.getcount() 加上分割線listview.getdividerheight() 的總高度

第二種:如果每個item的布局是高度是不一定的話,就會造成影響,便找了一些資料,使用了以下方法:

/** listview 總高度 */

public static int totalheight = 0;

public static void setlistviewheightbasedonchildren(listview listview)

totalheight = 0;

// 由於add了個footer,所以總量減去1

log.d("listadapter.getcount()", "" + listadapter.getcount());

for (int i = 0, len = listadapter.getcount() - 1; i < len; i++)

totalheight = totalheight + (listview.getdividerheight() * (listadapter.getcount() - 1));

}

計算得到了總高度。

5)實現動畫效果

解決:

/**

* 啟動列印訂單動畫

*/private void startanimation()

@override

public void onanimationrepeat(animation animation)

@override

public void onanimationend(animation animation)

});clistview.startanimation(anim);

}

最後來看看動畫效果把:

由於是第一次寫部落格,有不足之處望各位大神提出意見和建議,共同進步。謝謝!

android 仿花椒送花效果

今天寫乙個單個的,明天寫乙個很多那種花向上運動的效果,單個的很簡單,就是繪製乙個二階或者三階貝塞爾曲線,然後不斷的去改變這個離曲線起點位置的值,就可以求出座標,這個都是api給我們提供好了的,我們只負責調就行,如果對path不熟悉的話,要先去看下path是怎麼回事,path是在繪製界是很重要的乙個類...

Android 仿電視關閉的退出效果

一 實現效果 1.要求螢幕瞬間黑屏。2.黑色螢幕以勻加速或勻減速向中間擠壓,直至一條白線後消失不見,整個過程大概200毫秒。3.露出黑漆漆一片的黑色背景。二 思路 很容易想到用動畫效果來做,本例子確實也是這樣做的。如果你想自己動手繼承乙個view去寫也沒問題,但是既然已經有現成的api了,就不需要重...

Android 仿愛奇藝Loading效果

這是乙個由基本圖形組成的loading效果圖,從圖上可以看出,整個效果分為兩個部分 1 三角形 2 圓環。當圓環轉動一圈時,三角形並未發生變化,當圓環轉動第二圈時,三角形隨圓環的消失而旋轉。有一定自定義view經驗的朋友一定知道,我們可以用畫筆畫出圓 矩形 扇形等基本圖形,也能通過path 路徑 來...