从点击处弹出的对话框你想要吗?

最近实现了一个从点击处弹出的对话框,最终效果如下:

1. 接招

实现对话框功能可选择的技术有 Dialog、PopupWindow、Activity。它们都支持自定义弹出和消失动画。它们都能实现自定义动画。

WindowAnimationTransitionShareElement Transition
Dialog支持不支持不支持
PopupWindow支持支持不支持
Activity支持支持支持

WindowAnimation动画必须要在styles.xml中定义,不能通过代码动态设置windowEnterAnimation、windowExitAnimation。意味着windowAnimation一旦设置好了
动画是固定不变的,显然无法满足从点击处做弹出动画的功能。排除Dialog。Activity同时支持过渡动画和共享元素过渡动画。经过一番尝试,发现虽然Activity支持丰富
的过渡动画,但是并不适合完成该场景的功能,最终决定采用PopupWindow实现该功能。

2. 拆招

该动画的特征是:从手指点击处做放大动画同时将对话框的中心点平移到屏幕中心。核心代码如下

3. 解招

最终代码

4. 获取完整源码

关注微信公众号"字节小站",回复"对话框",获取完整源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值