详解Android(共享元素)转场动画开发实践

发布时间 - 2026-01-11 02:45:00    点击率:

最近零碎时间一直在研究OpenGL,所以没怎么进行分享,以后可能大部分时间会学习系统底层\NDK\VR\AR等领域,话不多少,今天来分享个小的动画效果.

效果如下


基本知识

其实Android的转场动画由来已久,比如平常开发安卓的时候界面切换 都是右进右出,这样的效果,就是早期的转场动画,在5.0之后安卓官方支持了共享元素的效果,那么问题来了,5.0以后该怎么适配?

准备步骤

定义两个activity,界面跳转是从A到B.

ActivityA定义一个控件View,在跳转时传入到Pair里面,详细代码如下:

  switch (v.getId()) {
    case R.id.tv_open_video:
      SigleVideoPlayer.startMe(mContext,tvOpenVideo);
      break;
  }

ActivityB详细代码如下

 public static void startMe(BaseMvpActivity mContext, View view) {
  Intent intent = new Intent(mContext, SigleVideoPlayer.class);
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
    Pair pair = new Pair<>(view, IMG_TRANSITION);
    ActivityOptionsCompat activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
        mContext, pair);
    ActivityCompat.startActivity(mContext, intent, activityOptions.toBundle());
  } else {
    mContext.startActivity(intent);
    mContext.overridePendingTransition(R.anim.abc_fade_in, R.anim.abc_fade_out);
  }
}

并在oncreate之后添加如下代码:

 private void initTransition() {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    postponeEnterTransition();
    ViewCompat.setTransitionName(button, IMG_TRANSITION);
    addTransitionListener();
    startPostponedEnterTransition();
  } else {
    // 处理你自己的逻辑
  }
}

设置动画监听

 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean addTransitionListener() {
  transition = getWindow().getSharedElementEnterTransition();
  if (transition != null) {
    transition.addListener(new OnTransitionListener(){
      @Override
      public void onTransitionEnd(Transition transition) {
        super.onTransitionEnd(transition);
         // 动画完成之后 处理你自己的逻辑
        transition.removeListener(this);
      }
    });
    return true;
  }
  return false;
}

总结

大家可以看到,这里面的代码不仅做了适配,同时设置了动画监听,无需使用三方库即可实现你自己的转场动画.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # 转场共享动画  # android转场动画  # 共享元素动画  # Android转场动画深入分析探究  # Android Flutter实现页面切换转场动画效果  # Android实现Reveal圆形Activity转场动画的完整步骤  # Android工具栏顶出转场动画的实现方法实例  # Android5.0之Activity的转场动画的示例  # Android中转场动画的实现与兼容性处理  # Android转场效果实现示例浅析  # 自己的  # 跳转  # 都是  # 来了  # 并在  # 是从  # 由来已久  # 可以看到  # 该怎么  # 基本知识  # 这里面  # 三方  # 大家多多  # tv_open_video  # id  # startMe  # SigleVideoPlayer  # case  # java  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: BootStrap整体框架之基础布局组件  Android 常见的图片加载框架详细介绍  如何在IIS管理器中快速创建并配置网站?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  高防服务器租用指南:配置选择与快速部署攻略  详解Android图表 MPAndroidChart折线图  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  浅谈redis在项目中的应用  个人摄影网站制作流程,摄影爱好者都去什么网站?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Python图片处理进阶教程_Pillow滤镜与图像增强  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何用IIS7快速搭建并优化网站站点?  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  微信公众帐号开发教程之图文消息全攻略  如何在不使用负向后查找的情况下匹配特定条件前的换行符  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Python进程池调度策略_任务分发说明【指导】  如何快速搭建高效WAP手机网站吸引移动用户?  html5的keygen标签为什么废弃_替代方案说明【解答】  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  🚀拖拽式CMS建站能否实现高效与个性化并存?  iOS发送验证码倒计时应用  如何快速生成可下载的建站源码工具?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  WEB开发之注册页面验证码倒计时代码的实现  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  LinuxShell函数封装方法_脚本复用设计思路【教程】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  太平洋网站制作公司,网络用语太平洋是什么意思?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?