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- 


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


从底部上滑:



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


比较常见的放大缩小:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值