不同位置动态点击图标放大跳转至新Activity

本文介绍了如何实现点击圆形头像后,头像放大平滑移动到屏幕中央,随后无痕跳转到新Activity,保持图片在相同位置。通过计算移动参数和使用缩放动画,确保在跳转过程中平滑过渡。动画结束时添加淡入淡出效果,增强用户体验。
摘要由CSDN通过智能技术生成

之前一次面试时,问道要实现一个效果,点击一个圆形头像放大移动跳转到另一个Activity同一图片位置,好使没有跳转痕迹。当时就简单说了一下,没有深入,今天有空就自己实现了一下。

我的想法是点击头像放大移动到固定位置,然后activity再跳转。

考虑到头像位置不一定是固定的,所以每次跳转时需要重新计算一下移动参数。动画结束时还需要有个淡入和淡出的效果


首先是准备一个缩放的动画。第一个activity里的图片尺寸按100×100,第二个activity的尺寸是300×300,所以放大的倍数是固定为3倍

那第一个动画的代码

Animation animate1 = new ScaleAnimation(1.0f, 3.0f, 1.0f, 3.0f,
                Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f);
重点在第二个移动的动画,由于位置不是固定的,所以要将图片从现有位置移动到你需要它移动到的位置

第一步拿到屏幕的宽和高

        int width = getResources().getDisplayMetrics().widthPixels;
        int height = getResources().getDisplayMetrics().heightPixels;
不过由于状态栏还占着一定的高度所以要减去这部分


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值