Android 流動條動畫

我們想要做一個客制流動條動畫,一般來說只要透過 ProgressBar intermediately 應該可以滿足,要是讓客制的元素看起來真的持續流動,就會變得很棘手。例如:

我們或許可以依循 Progress Bar 製作分割畫面,不過對於 coder 來說,失敗率太高。改用 Keyframe/lottie-android 有點殺雞用牛刀。對於流動動畫來說,或許自己寫個 View translation 就好,而其中一個基本要求是:

  • 支援不定寬度

那麼創造 ImageView() 要量一下畫面總共應該要建立幾個 ImageView() ,讓每個圖像等速向右前進,為了沿用圖像,當消失在外面的圖像要重新使用從最左邊出現。因為中繼的關係,所以至少應該 N+1 圖像。說到這裡,好像似曾相似,應該有個東西可以幫助我們省掉這段程式。

那不就是 RecyclerView 在做的事情嗎?我們只要決定捲動速度就好。

先寫一個無限捲動的 InfinityRecyclerViewAdapter (不過我小偷懶只能捲到 Int.MAX_VALUE ):

接著初始化跟捲動:

就這樣我們就製作出一個土炮的流動條動畫了。

References: