打造一個擴展性強的的抽象BasePopup類

jopen 8年前發布 | 6K 次閱讀 Android開發 移動開發

首先獻上github地址~

https://github.com/razerdp/BasePopup

然后獻上博客地址~

http://blog.csdn.net/mkfrank/article/details/50522666


因為已經在博客發表過了,所以這里就不再復制粘貼了(CSDN每次修改都得審核,好麻煩的說)


在下說說思路吧:

  

  其實原理很簡單,因為popupWindow支持我們添加一個View作為內容,但是關于popup的動畫控制不太方便,所以我們可以這么想――


1 - 我們弄一個全屏的popup,添加一個全屏的view(ViewGroup)

2 - 這個全屏的view有一個灰色半透明的背景色(自己喜歡-V-)

3 - 這個viewGroup里面有我們需要展示的view,比如選擇菜單,listView什么的,甚至來個viewPager都可以

4 - popup我們就不弄動畫了,直接讓它展示,我們的動畫針對的是我們需要展示的view

5 - 實際效果就是:我們show出來,于是先出現一個灰色半透明的浮層,然后我們需要展示的view開始播放動畫~

6 - 因為這個view是我們自定的,所以可定制性很高,而且動畫可以我們自己控制哦

7 - 繼承我們的BasePopup,再也不用這么麻煩弄那么多代碼了。


想要優化的地方:

1 - 在dismiss()時也弄個退出的動畫。我曾經試過在onDismissListener里面弄,但效果不太好。

最近想到這么一個方法:

  在dismiss前先播放動畫,給動畫弄個AnimationListener,在onAnimationEnd里真正的dismiss掉

感覺這個方法可以,但我暫時還沒試驗。


這個gitHub我會維護到我見過的Popup都能通過這個BasePopup簡單的擴展出來為止,如果不能擴展,就意味著還有進步的地方哈哈-V- 


目前實現了這三個效果圖:


從底部上滑:



仿微信朋友圈的評論彈窗:


比較常見的放大縮小:


后續我會陸陸續續的添加更多好玩的Popup進來的

來自: http://www.jcodecraeer.com//a/anzhuokaifa/androidkaifa/2016/0116/3876.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!