一个比较有趣的 Android 动画效果

本文展示了如何在 Android 中实现一个有趣的动画效果,通过分析实现原理,利用属性动画使 Fragment 进行平移、缩放和旋转,同时调整背景透明度,创建出动态的视觉体验。代码示例和 XML 布局文件的展示有助于读者深入理解并应用到自己的项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看一下效果

这里写图片描述

分析实现原理:

这里主要知识点是对动画的使用,原理页很简单,在一个 Activity 中布局两个 Fragment,不用 fragment 也行,但是在同一个 xml 中代码量就会比较庞大;初始化的时候让第二个 Fagment 移动到底部隐藏起来,就是刚启动应用时的界面,点击开始之后,执行相应的动画,第一个 Fragment 的 X 和 Y都同时缩小,并且一开始让 X旋转25度,等一定时间,让 X旋转的角度复原,此过程就是 Fragment 的向后移动的动画过程,同时有一个黑色的背景设置它的透明度,从全透到0.5f;第二个Fragment动画就非常简单,单纯的向下和向上移动。

这里就贴一部分代码出来,有兴趣了解的可以直接下载源码下来研究。
贴代码过程:
向后移动动画

        mHoverView.setClickable(true);
        /*设置背景透明度动画*/
        ObjectAnimator animator = ObjectAnimator.ofFloat(mHoverView, "alpha", 0, 0.5f);
        /*放小X 的动画*/
        ObjectAnimator scaleXAnim = ObjectAnimator.ofFloat(mOriginalView, "scaleX", 1.0f, .8f);
        /*放小Y 的 动画*/
        ObjectAnimator scaleYAnim = ObjectAnimator.ofFloat(mOriginalView, "scaleY", 1.0f, .8f);
        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.playTogether(animator, scaleXAnim, scaleYAnim);
        animatorSet.setDuration(350);
        animatorSet.start();
        /*先让X 旋转20度的动画*/
        ObjectAnimator transX = ObjectAnimator.ofFloat(mOriginalView,"RotationX",20.0f);
        transX.setDuration(150);
        transX.start();
        /*等一定时间让X 旋转角度复位*/
        ObjectAnimator resumeX = ObjectAnimator.ofFloat(mOriginalView,
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值