天天看點

Android仿拼多多拼團堆疊頭像序言實作

做電商的都知道,作為商品的一種售賣方式,拼團是是提供商品售賣的一種及時有效的方式,而在拼團市場中,拼多多無疑是做的最好的一家。于是,研究拼多多的售賣方式之後,我們的産品也開始了這方面的開發。本文将要給大家介紹的就是通過自定義的方式實作堆疊頭像,這種效果在直播app中非常常見。下面是部分效果:

Android仿拼多多拼團堆疊頭像序言實作

我相信很多朋友之前一定遇到過這種需求:富文本自動換行,如下所示:

Android仿拼多多拼團堆疊頭像序言實作

要實作這種富文本換行,最重要的就是對onMeasure方法,通常的做法是,測量出子View的寬度,當大于螢幕的寬度的時候就換行(當然,需要考慮文字本來就很長,一行顯示不下的情況)。相關代碼如下:

說了這麼多,那麼具體怎麼實作的呢?由于時間關系,這裡我就直接貼代碼了。首先自定義ViewGrop,實作後一個頭像會覆寫一部分到前一個頭像上,為了友善使用者控制堆疊頭像的重疊大小,我們通過自定義屬性來解決。

PileView.java

自定義的屬性如下:

為了友善使用者使用,我們在PileView的基礎上再封裝一下,封裝完成後,隻需要使用者提供資料源即可實作頭像堆疊。例如,下面的代碼給控件設定資料源即可:

要完成上面的封裝,主要會涉及如下的代碼:

PileAvertView.java

相關的布局:

layout_group_pile_avert.xml

item_group_round_avert.xml

繼續閱讀