Android动画之Activity,View背景的3D缩小

本文介绍了Android中实现3D缩放效果的三种方法:使用ScaleAnimation、自定义动画通过setPolyToPoly以及通过Camera实现。尽管ScaleAnimation简单易用但缺乏3D效果,而自定义动画可以通过对View的变形来达到更逼真的3D视觉。最后,通过Camera进行3D变换是Google官方推荐的方法,虽然只展示了部分动画效果,但完整实现可参照ApiDemo。所有方法本质上都是通过操控Matrix来实现2D平面上的伪3D错觉。
摘要由CSDN通过智能技术生成

需求

有时候我们在底部弹出一个对话框的时候,很多app为了良好的视觉效果,会将原先的view进行3D缩放。如图是手机京东选择配送方式时,弹出底部对话框,背景View的缩放效果。(ps. Android端没有此效果)手机京东效果

实现方式 1 ScaleAnimation

使用ScaleAnimation是可以实现放大缩小的效果的,但是是没有类似京东这种的3D效果,如果不追求那么极致的体验,还是可以的,毕竟简单方便。

        rootView = findViewById(android.R.id.content)

private fun startShowAnimation() {
        val scaleAnimation = ScaleAnimation(1f, 0.93f, 1f, 0.93f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f)
        scaleAnimation.interpolator = LinearInterpolator()
        scaleAnimation.duration = 300
        scaleAnimation.fillAfter = true
        rootView.startAnimation(scaleAnimation)
    }

实现方式2 自定义动画通过setPolyToPoly

通过 setPolyToPoly 可以实现任务的变形,参数的解释

 /**

     * @param src 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值