博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android转场动画--共享元素(Shared Element)
阅读量:5923 次
发布时间:2019-06-19

本文共 1227 字,大约阅读时间需要 4 分钟。

什么是共享元素呢?可以理解为当页面跳转是,看起来一个View属于界面A又属于界面B。 看一下下边这个效果:

clipboard.png

在这个转场动画中,图片和文字都是共享元素,具体怎么实现这种效果呢?

Step1

首先需要先在style.xml配置上允许内容过度。

Step2

为共享元素设置上transtionName。设置name的时候两个界面都要添加上,这样才可以检测到是哪两个元素共享。

也可以在代码中设置:

imageView.setTransitionName("image");

Step3

设置好以上的参数后,就可以通过跳转来添加相应的动画了。是不是特别的简单。是的。没有错。只不过再跳转的时候还需要加点东西。看下代码:

Intent i = new Intent(mContext, Main2Activity.class); ActivityOptionsCompat optionsCompat =  ActivityOptionsCompat.makeSceneTransitionAnimation(mContext, holder.image, "image"); startActivity(i,optionsCompat.toBundle());

通过上面的代码就可以实现ImageView的共享了。类似文章开头的效果。设置多个元素共享的时候需要这样:

Intent i = new Intent(mContext, Main2Activity.class); Pair
pair = new Pair
(holder.image,"image"); Pair
pairText = new Pair
(holder.text,"text"); ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(mContext, pair,pairText); startActivity(i,optionsCompat.toBundle());

在上面的跳转代码中我们用到了ActivityOptionsCompat的两个静态方法。分别是

  • makeSceneTransitionAnimation(Activity activity,View sharedElement,String sharedElementName)
  • makeSceneTransitionAnimation(Activity activity,Pair<View, String>... sharedElements)

通过函数的参数我们应该就可以看的明白,就不解释了。这两个函数就是用来设置共享元素的。

转载地址:http://pksvx.baihongyu.com/

你可能感兴趣的文章
前甲骨文 Linux 部门主管加入微软
查看>>
深度学习项目实战——“年龄预测”
查看>>
《为自己工作——世界顶级设计师成功法则》—第3章3.1节什么是利基
查看>>
Mybatis调用MySQL存储过程的简单实现
查看>>
《CUDA C编程权威指南》——3.8节习题
查看>>
《R的极客理想—工具篇》—— 1.3 fortunes 记录R语言的大智慧
查看>>
《识数寻踪:WinHex应用与数据恢复开发秘籍》——第1章 学海茫茫孤帆冷——数据恢复概述 1.1 给所有数据恢复工程师的话...
查看>>
《抓住听众心理——演讲者要知道的100件事》一14.遗忘是程序化的
查看>>
《R数据可视化手册》一3.9 添加数据标签
查看>>
淘富成真|这次带来了女性的护肤神器
查看>>
《Unity 5.x游戏开发实战》一2.1 创建一个金币的材质
查看>>
《精通Spring MVC 4》——1.2 IntelliJ简介
查看>>
《Adobe Flash Professional CC经典教程》——1.11 保存影片
查看>>
微服务
查看>>
《iOS 8开发指南》——导读
查看>>
《GNS3实战指南》——1.4 结语
查看>>
ROS机器人程序设计(原书第2版)3.2.1 输出日志信息
查看>>
《学C编程也可以卡通一点》一1.2创建变量
查看>>
《Python数据科学指南》——导读
查看>>
《Ansible权威指南 》一 导读
查看>>