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

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

Step1

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

true

Step2

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

android:id="@+id/image"

android:layout_width="150dp"

android:layout_height="100dp"

android:transitionName="image"

android:src="@drawable/default_image" />

也可以在代码中设置:

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... sharedElements)

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

android 元素共享动画,android转场动画--共享元素(Shared Element)相关推荐

  1. Android Activity和Fragment的转场动画

    Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, int exitAnim)实现的. 这个方法是API Lev ...

  2. Android转场动画,Avtivity转场动画;

    转场动画 - 共享元素动画 先看效果: Activity1点击小图标开启Activity2: 开启Activity2效果就像是小图标放大了填充上去的,关闭Activity2回到Activity1时又像 ...

  3. android自定义转场动画,Activity转场动画(5.0+)

    设置transitionName 首先,我们需要选定变换开始和结束的元素,给它们设置一个相同的transitionName, 我这个例子中,开始变换的元素是列表中的图片 android:id=&quo ...

  4. android 默认转场动画,安卓转场动画

    转场动画相关 一.系统自带动画效果 假如有 A 和 B 两个 Activity, 从 A 进入 B,调用 startActivity(Intent(this,AnimCutOutActivity::c ...

  5. angular2系列之动画-路由转场动画

    一.在app.mudule.ts中引入: import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; ...

  6. iOS动画之转场动画CATransition

    CATransition转场动画 提供层状态间动画转换的对象. 你可以通过创建和添加一个cattransitions对象到一个层的状态之间的过渡.默认转换是交叉渐隐,但是您可以从一组预定义转换指定不同 ...

  7. iOS 开发——登录页面动画、转场动画

    DEMO下载地址:https://github.com/YYProgrammer/YYLoginTranslationDemo 技术点分析 如何生成一个动画让控件执行? 现流行的方式主要有三种: 1. ...

  8. IOS开发教程第一季之02UI进阶day8合并IOS学习019--敲击、长按、轻扫、旋转,CALayer、锚点,CADisolayLink刷新,核心动画,关键帧动画,组动画,转场动画,画板案例

    1.创建并实现手势的基本步骤 点击手势 #import "ViewController.h"@interface ViewController () @property (weak ...

  9. android 转场动画 监听,Android 中的转场动画及兼容处理

    Android 中的动画有很多,除了在一个界面上使用帧动画.属性动画将一个或多个 View 进行动画处理以外,还可以用于两个界面之间过渡.跳转.在 Android 5.0 之前,我们已经有了 over ...

  10. 高逼格Android转场动画

    前言 转场动画在交互上非常有优势,本文从转场动画的使用场景和方法起,最后是实现掘金中用户头像的转场动画. 转场动画适用的版本 Activity transition APIs 只有在Android 5 ...

最新文章

  1. 闲诗一首:《扬州即行》
  2. 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统
  3. linux的线程实验的实验结果,Linux线程qps测试
  4. jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件
  5. 基于Java+SpringBoot+vue+element实现火车订票平台管理系统
  6. MySQL语句集锦(持续更新)
  7. android style theme
  8. php is_subclass_of,PHP is_subclass_of函数的一个BUG和解决方法
  9. java分形树_java画分形树实例
  10. python遍历json_Python学习笔记:Python3中Json数据遍历取指定值
  11. 桌面cpu与服务器cpu天梯,桌面CPU性能排行 桌面CPU天梯图2017年6月最新版
  12. mongodb分组统计
  13. python 数独_python 实现 数独 解法 (穷举法)
  14. Creo9.0 绘制中心线
  15. 【RL】同策略(on-policy)与异策略(off-policy)
  16. 【解决方案】连锁店巡店难?开发成本高?TSINGSEE青犀视频打造一站式连锁店视频上云/安防监控/AI智能分析解决方案
  17. BAT 把持的小程序领地,现在入场的今日头条还有救吗?
  18. java导出excel带上进度条_导出数据至Excel前台js进度条不能隐藏
  19. C语言之write()函数解析:Write Failed Bad address
  20. 学业竞技实业网址窗口

热门文章

  1. 10情态动词(3):分类
  2. Latex 中{itemize}的使用(转自Lavande de mer)
  3. 专利申请流程分别从三种类型进行说明:发明专利、外观设计专利和实用新型专利
  4. IDEA怎么设置离线工作模式
  5. python paramiko详解_python paramiko模块简介
  6. oracle deferred_segment_creation,deferred_segment_creation 参数
  7. 怎么创建java文件_如何创建java文件
  8. Jetbrains IDE 使用教程
  9. 我要学画画(持续更新~)
  10. 戴尔服务器虚拟机配置ip地址,虚拟机下CentOS配置IP地址的三种方法