Android过渡动画,发现掘金小秘密

本文介绍了Android的过渡动画,包括进入与退出动画,以及如何兼容Android 5.0之前的版本。同时,文章还分享了面试宝典,强调了学习经验总结,如心态调整、时间管理和技术知识的积累。
摘要由CSDN通过智能技术生成

android:gravity=“center”
android:transitionName=“textTransform”
android:text=“我是第一个Activity”
android:textColor="@color/c_333"
android:textSize=“18sp” />

<?xml version="1.0" encoding="utf-8"?>




`

  1. 构建多个Pair对象,并传递给makeSceneTransitionAnimation()函数,启动Activity

ivImage.setOnClickListener { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val imagePair=Pair<View,String>(ivImage,"activityTransform") val textPair=Pair<View,String>(ivImage,"textTransform") val bundle = ActivityOptions.makeSceneTransitionAnimation(this, imagePair,textPair).toBundle() startActivity(Intent(this, SecondActivity::class.java), bundle) } else { startActivity(Intent(this, SecondActivity::class.java)) } }

这里主要是通过将共享视图和transitionName属性的值包装到Pair对象,其他操作和一个共享元素的操作步骤并无区别。

「效果图:」

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8X4C3b8-1650171556284)(https://user-gold-cdn.xitu.io/2020/7/11/1733cfa764aa491f?imageslim)]

「深坑提醒」

有时从RecyclerView界面进入到详情页,由于详情页加载延迟,可能出现没有效果。例如ImageView从网络加载图片,可能A界面到B界面没效果,B回到A界面有效果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8wLsO5B-1650171556284)(https://user-gold-cdn.xitu.io/2020/7/13/173473efe2c8292e?imageslim)] 解决步骤:

  1. setContentView后添加下面代码,延迟加载过渡动画。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { postponeEnterTransition() }

  1. 在共享元素视图加载完毕,或者图片加载完毕后调用下面代码,开始加载过渡动画。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { startPostponedEnterTransition() }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qOjjyeXL-1650171556285)(https://user-gold-cdn.xitu.io/2020/7/13/173473cc8f694a47?imageslim)] 例如我是在Glide加载完再调用:

Glide.with(mContext) .asBitmap() .load(value?.avatar ?: "") .listener(object : RequestListener<Bitmap> { override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target<Bitmap>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean { animatorCallback?.invoke()//回调

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值