❶ Android 共享元素效果
Transition 框架是 Android 4.4 KitKat 中加入的,但在 5.0 才开始被人应用起来,
而且这一部分也涉及了 22.0 的 API,虽然有对应的 support.v4 包,但也还是有点问题。
所以这一部分可以说是 5.0 以上适用的方法。
效宽春果(录制出来的效果有点卡顿):
这里遇到一点小问题,即上述 Activity 引用的 style 中不仅设置了 android:windowIsTranslucent ,也设置了 android:windowIsTranslucent : 让 Activity 的背景为透明,在我测态渣试的时候发现使用共享元素的时候出现了返回时闪屏的现象,解决方法是设置 Activity 背景颜色为透明。
在 onCreate 中:
或者在上述的 style 中的 theme 添加:
在打开的 Activity 的 xml 中
对应的 ImageView 中的 android:transitionName 属性值必须相同,而对两个控件的大小、id 等属性并无要求。
在 makeSceneTransitionAnimation 传入的参数中,mImgView 是第一个界面中 ImageView 的实例,第三个参数对应 xml 中的 android:transitionName 的值。
因为打开新的 Activity 的时候,可能要去加载新的图片,这时候我们需要 延迟过渡动画的开始 ,直到图片加载完成之后再开始动画。帆巧悄否则会出现各种 bug。
所以要在第二个 Activity 中的 onCreate() 中阻止动画的执行:
然后在图片加载完成后开始动画:
当然,启动动画不一定要等待图片加载完成再进行,因为还存在着图片加载失败、加载时间过长等问题,这里只是提出一种方法,实际还是自己看情况决定。
以上只是简单的实现了一种效果,关于 Transition 的使用、共享元素在
Fragment 中的使用、多个共享元素的使用等,在这里暂时不打算细讲,可以参考:
使用 Transition FrameWork 实现有意义的转场动画(译)
(译)Android 5.0 页面共享元素过渡
定义定制动画
原理大概就是如此,实现动画的方法有很多种。
可以参考:
Activity 共享元素转场动画实践
Android共享元素转场动画兼容实践
❷ android同一个页面可以实现共享元素动画嘛
您好,是的,Android可以实现共享元素动画。它是一种特殊的转换动画,可以在两个不同的页面之间共禅袜享元素,使用它可以实现并改从一个页面到另一个页面的平滑过渡。它可以在两个贺蔽激不同的页面之间共享元素,使用它可以实现从一个页面到另一个页面的平滑过渡。共享元素动画可以在Android应用程序中使用,可以提高用户体验,使用户更容易理解和使用应用程序。它可以帮助开发者更好地实现视觉效果,从而更好地吸引用户。