Android popupWindow打造一个扩展性强的的抽象BasePopup类

首先献上github地址~

https://github.com/razerdp/BasePopup

  其实原理很简单,因为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- 


目前实现了这三个效果图:


从底部上滑:


Android popupWindow打造一个扩展性强的的抽象BasePopup类_第1张图片


仿微信朋友圈的评论弹窗:

Android popupWindow打造一个扩展性强的的抽象BasePopup类_第2张图片


比较常见的放大缩小:

Android popupWindow打造一个扩展性强的的抽象BasePopup类_第3张图片


你可能感兴趣的:(Android popupWindow打造一个扩展性强的的抽象BasePopup类)