尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Material-Animations transitionSet 实战指南:顺序过渡与自定义 Interpolator 如何打造高级动效

Material-Animations transitionSet 实战指南:顺序过渡与自定义 Interpolator 如何打造高级动效 Material-Animations transitionSet 实战指南顺序过渡与自定义 Interpolator 如何打造高级动效【免费下载链接】Material-AnimationsAndroid Transition animations explanation with examples.项目地址: https://gitcode.com/gh_mirrors/ma/Material-AnimationsMaterial-Animations 是一个 Android 转场动画Transition示例项目通过 res/transition/ 目录下的 XML 文件和对应 Activity 代码演示了如何用transitionSet 顺序过渡与自定义 Interpolator打造 Material 风格高级动效。本文将从零讲清transitionSet的 4 种玩法帮你快速上手 Activity/Scene 转场。为什么需要 transitionSet一个 XML 编排多个过渡Android 内置了Explode、Slide、Fade、ChangeBounds等基础过渡但真实的高级感往往来自组合先滑动入场再让元素改变边界位置——这就要用到transitionSet。它的本质是一个容器把多个过渡子元素写在一起由框架统一执行。项目提供了 4 个典型配置都放在 app/src/main/res/transition/ 下配置文件组合方式效果slide_and_changebounds.xmlslide changeBounds 默认并发滑动与形变同时进行slide_and_changebounds_sequential.xmlsequential 顺序执行先滑完再形变slide_and_changebounds_sequential_with_interpolators.xml顺序 各自 Interpolator减速滑动 弹跳形变changebounds_with_arcmotion.xmlchangeBounds arcMotion沿弧线运动默认行为子过渡并发执行先看最朴素的写法slide_and_changebounds.xmltransitionSet xmlns:androidhttp://schemas.android.com/apk/res/android android:durationinteger/anim_duration_long slide / changeBounds / /transitionSet只写了总时长duration没有transitionOrdering属性——此时 slide 和 changeBounds 会同时开始、同时结束动画糊在一起层次感弱。核心技巧一transitionOrderingsequential 实现顺序过渡只加一行属性动画立刻变得有节奏slide_and_changebounds_sequential.xmltransitionSet xmlns:androidhttp://schemas.android.com/apk/res/android android:durationinteger/anim_duration_long android:transitionOrderingsequential slide / changeBounds / /transitionSetandroid:transitionOrderingsequential让两个过渡按 XML 中的先后顺序依次执行slide先播放完changeBounds再启动。视觉上就像页面先滑入内容再各就各位层次感显著提升。在 Java 侧等效写法是transitionSet.setTransitionOrdering(TransitionSet.ORDER_SEQUENTIAL)而本项目用 XML 声明式配置配合TransitionInflater加载即可见 AnimationsActivity1.java。 顺序方向同样影响返回动画B 页退场走returnTransitionA 页重入场走reenterTransition未定义时框架会自动反转 enter/exit 过渡。核心技巧二为每个过渡单独指定 Interpolator这是高级感的关键。默认所有子过渡共用一条缓动曲线看起来千篇一律而给每个子过渡指定不同的interpolator就能做出先快后慢滑入 弹跳落位这类电影级节奏slide_and_changebounds_sequential_with_interpolators.xmltransitionSet xmlns:androidhttp://schemas.android.com/apk/res/android android:durationinteger/anim_duration_long android:transitionOrderingsequential slide android:interpolatorandroid:interpolator/decelerate_cubic / changeBounds android:interpolatorandroid:interpolator/bounce / /transitionSet两个要点decelerate_cubic三次方减速slide起步快、收尾慢符合滑入的自然手感bounce弹跳changeBounds结束时轻微回弹像元素落位。Android 内置插值器还包括accelerate、anticipate、overshoot、linear等可自由替换。也可以把interpolator写在transitionSet根节点上作为所有子过渡的默认曲线再对个别子元素单独覆盖。进阶玩法ArcMotion 让 changeBounds 沿弧线飞行changebounds_with_arcmotion.xml 演示了第三种思路——不改执行顺序而是改运动轨迹transitionSet xmlns:androidhttp://schemas.android.com/apk/res/android android:durationinteger/anim_duration_long android:interpolatorandroid:interpolator/decelerate_cubic changeBounds arcMotion android:maximumAngle90 android:minimumHorizontalAngle90 android:minimumVerticalAngle0 / /changeBounds /transitionSetarcMotion是changeBounds的子元素元素不再走直线而是沿一段圆弧运动到目标位置。maximumAngle限制最大弧度minimumHorizontalAngle/minimumVerticalAngle保证水平、垂直方向分别的最小弧度。这个配置在项目里还被用于共享元素转场见 RevealActivity.java。动手跑起来3 步体验本项目克隆仓库git clone https://gitcode.com/gh_mirrors/ma/Material-Animations用 Android Studio 打开等待 Gradle 同步完成运行 App 后依次点击TransitionsMainActivity.java 的示例列表与View animationsScene 转场在 Scene 按钮 1~4 之间切换即可对比 4 种transitionSet配置的真实效果。小结transitionSet 属性速查属性作用推荐值android:duration总时长项目统一用integer/anim_duration_longandroid:transitionOrdering子过渡执行方式sequential顺序 /together并发默认android:interpolator缓动曲线写在根节点做默认子节点可覆盖arcMotion子元素弧线轨迹适合共享元素/布局变化的飞行感记住一条主线顺序sequential解决节奏Interpolator 解决手感ArcMotion 解决轨迹——三者组合就是 Material 高级动效的完整配方。更多配置可直接翻阅 app/src/main/res/transition/ 目录每个文件都是一个可运行的最小示例。【免费下载链接】Material-AnimationsAndroid Transition animations explanation with examples.项目地址: https://gitcode.com/gh_mirrors/ma/Material-Animations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表