首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MotionLayout 使用介绍 (第一章)

MotionLayout  是ConstrainLayout 2.0库中被引入的一个新类,帮助安卓开发者关联手势和组件动画。接下来的文章将介绍会如何在应用中添加和使用MotionLayout。...还有它支持可循迹的过渡,就像CoordinatorLayout(可以通过滑动即刻响应过渡动画)。它支持通过滑动和关键帧自定义过渡动画。...[image] 一个MotionScene文件可以所有游戏动画所需的所用内容: 包含的 ConstraintSets 这些ConstraintSet之间的转换(过渡) 关键帧,事件处理 例如,你可以将一个查看从屏幕的一侧拖拽到另一侧...: [strip] 示例1:关联布局文件 需要你使用ConstrainLayout创建³³两个ConstrainSet一个的英文初始位置(组件在屏幕的左面)一个是结束位置(组件在屏幕的右边) 初始位置:...> MotionScene文件中有明显的区别,Transition的设置相同,但是我们把Start和结束直接定义在了XML文件中。

4.2K00

Android Studio 中的 Motion Editor 用法详解

本文会带您快速了解新的 Motion Editor 工具,以及如何在开发过程中使用其最新功能。...Overview 面板中的状态显示相应的控件信息,它有三种显示模式: 选中 Overview 面板中 Motion Layout 时的模式 选中 Overview 面板中 ConstraintSet...比如背景色) 时,可以在 Attribute 面板中创建自定义属性。...您可以使用 Design 视图和 Blueprint 视图预览动画,在没有很多视觉干扰的情况下更清晰地了解视图是如何移动的。 ? 我们还为视图在屏幕上的路径添加了可视化的功能,包括关键帧的标记。...如果您想了解更多本文中使用的代码以及其他几个 MotionLayout 的示例,如果您想了解更多关于 MotionLayout 的内容,请查阅以下资源: 使用 MotionLayout 管理 motion

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 View 上使用挂起函数 | 实战

    本文是探索协程如何简化异步 UI 编程系列的第二篇。第一篇侧重理论分析,这一篇我们通过实践来说明如何解决实际问题。如果您希望回顾之前的内容,可以在这里找到——《在 View 上使用挂起函数》。...这个 ID 映射到了季份列表中的某一集; 该集的条目可能还没有被添加到 RecyclerView 中,需要用户展开该季份的列表,然后将其滑动展示到屏幕上,这样我们需要的视图才能被 RecyclerView...) // 滑动 RecyclerView 使该季份的条目显示在其区域的最上方 recyclerView.smoothScrollToPosition(seasonItemPosition...我们的 awaitTransitionComplete() 方法如下定义: /** * 等待过渡动画结束,目的是让指定 [transitionId] 的动画执行完成 * * @param transitionId...如注释中所说,由于 SmoothScroller 真正开始执行的时间是动画的下一帧,所以我们等待一帧后再判断滑动状态。

    1.4K30

    突破传统动画:探索MotionLayout的独特优势

    在移动应用程序开发中,动画和过渡效果是提升用户体验的重要元素。...MotionLayout是ConstraintLayout的扩展,它允许我们在Android应用程序中创建复杂的动画和过渡效果。...ConstraintSet包含了视图之间的约束关系,即它们在屏幕上的位置和属性。我们可以通过修改ConstraintSet来定义不同状态下的布局。...KeyFrameSet:KeyFrameSet用于定义过渡中的关键帧。关键帧是动画过程中的特定时间点,您可以在关键帧上设置视图的属性,例如位置、旋转、透明度等。...通过在关键帧上设置属性,可以实现复杂的动画效果。 事件触发:MotionLayout可以通过各种事件触发过渡,例如点击事件、拖动事件等。您可以在MotionScene中定义事件的目标视图和触发行为。

    34240

    【翻译】MotionLayout实现折叠工具栏(Part 2)

    我们已经讨论过 MotionLayout 是如何在 ConstraintSets 中所定义的固定布局之间进行过渡动画了。...我们之前在 ImageView 控件上定义的关于 imageAlpha 属性的过渡动画,设定的是从展开位置的值 255 到折叠位置的值 0 之间进行,同时 MotionLayout 在动画过程中会进行插值运算...因此我们得到的是一个非常平滑的过渡动画,从工具栏开始发生折叠一直到工具栏完全达到折合状态为止。这也很好的解释了我们所看到的在 MotionLayout 中对动画行为的实现。...每一个字段还定义了一个 CustomAttribute 元素,它的意思和我们之前在开头、结尾状态中定义的意思是一样的。...但是在目前来说,添加 tools:showPaths="true" 这段代码能够让 MotionLayout 计算并显示这三个被过渡动画所影响的视图控件的轨迹路线:标题文本控件(顶部,中心左侧),工具栏的海滩小排屋图片

    1.7K30

    Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

    改进的 Layout Inspector(布局查看器)现在可以提供应用 UI 的实时数据,因此你可以轻松准确地调试设备上显示的内容。 每个新版本的发布都要感谢测试用户的反馈信息。...在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。...使用 Layout Validation 在多个屏幕上对比 UI 当你为多种屏幕规格、屏幕尺寸和分辨率开发应用时,需要验证对 UI 所做的更改在所支持的每个屏幕上都能正常显示。...在 Android Studio 4.0 中,CPU 记录现在与 Profiler 主时间轴分开显示,并按组分类以简化分析过程。你可以上下移动组,或者在组中拖放项目以定制界面。 ?...如果你不想共享此信息,则可以在模块的 build.gradle 文件中添加以下内容来轻松取消: android { dependenciesInfo { // Disables

    4.7K30

    探索 MotionLayout 动画世界

    duration :动画的持续时间,如果没有设置会使用MotionScene元素的defaultDuration。 staggered :在多个View之间应用过渡效果时,指定是否应该依次进行过渡。...moveWhenScrollAtTop :定义是否在滚动到顶部时允许拖拽。 KeyFrameSet 用来描述一系列运动过程中的关键帧。可以利用它使动画效果变的更复杂。...可以设置为 0 到 1 之间的浮点数,表示相对于视图父级的百分比。 KeyAttribute 指定动画序列中特定时刻的视图属性。 framePosition :定义关键帧在动画中的位置。...KeyTimeCycle 是在帧上做周期性,KeyCycle 是在动画过程中做周期性。 KeyTrigger 在动画中调用控件的指定方法。...顶部大图及背景 效果图如下: 首先在布局文件中添加一个ImageView来显示图片,添加一个等大小的View作为背景。

    17910

    静若处子动若脱兔-Constraintlayout2.0一探究竟

    MotionLayout的设计初衷是为了简化Android中的过渡动画,因此它几乎可以替代TransitionManager来实现组件间的过渡效果。...d60f65f6b8eb6e6b2a2271c588503df3 ConstrainLayout与MotionLayout的主要不同点是,MotionLayout将过渡动画的描述文件放置在另一个xml文件中...而在独立的xml文件中,描述约束的变化,这个独立的xml就是MotionScene文件,它独立在res/xml文件夹下,一个MotionLayout均对应一个MotionScene。...除此之外,Arc Motion还可以和KeyFrame协作使用。让Arc Motion在多个KeyFrame分段之间,产生曲线效果。...UI与动画进行了分离,MotionLayout将所有的动画逻辑放在了Scene中,跟最早Android布局的写法,将UI和代码进行分离的方式类似,但这种方式在现在的开发模式下,并不是很直观,因为MotionLayout

    1.1K10

    Android Jetpack 更新一览

    但也许最重要的是,CameraX 库在持续解决性能问题,使图像捕捉和初始化速度更快,特别是在旧设备上。 Hilt Hilt 是 Jetpack 推荐的建立在 Dagger 之上的依赖注入解决方案。...与 Paging 2 相比,3.0 版本在可用性方面有了很大的改进,重写时就考虑到了部分和分阶段迁移的问题,以便开发者可以按照自己的计划进行过渡。...MotionLayout 现在支持可折叠设备、图像滤镜和动效。请 观看这场 Google I/O 演讲 了解更多关于设计工具的新内容。...,我们在 Fragment 库上着力甚多,对其内部实现进行了清理并减少了未记录的行为,使开发者更容易在他们的应用中遵循最佳实践,并编写可靠的测试。...您可以通过 ShortcutManager 一次发送多达 15 个快捷方式,以显示在 Google Assistant 和其他服务中,使它们可用于语音和其他互动。

    1.6K20

    Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

    改进的 Layout Inspector(布局查看器)现在可以提供应用 UI 的实时数据,因此你可以轻松准确地调试设备上显示的内容。 每个新版本的发布都要感谢测试用户的反馈信息。...在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。...UI 当你为多种屏幕规格、屏幕尺寸和分辨率开发应用时,需要验证对 UI 所做的更改在所支持的每个屏幕上都能正常显示。...在 Android Studio 4.0 中,CPU 记录现在与 Profiler 主时间轴分开显示,并按组分类以简化分析过程。你可以上下移动组,或者在组中拖放项目以定制界面。...如果你不想共享此信息,则可以在模块的 build.gradle 文件中添加以下内容来轻松取消: android { dependenciesInfo { // Disables

    2.6K20

    无缝构建跨设备体验 | Google IO 大会精彩回顾

    如果您错过了大会直播,可通过本文了解其中最重要的内容,也可以查看 无缝构建跨设备体验 | Google I/O 大会精彩回顾 视频了解 平板设备、可折叠设备和大屏设备 在设计应用时,使其能够在 大屏幕设备...我们还研究了用户与大屏幕设备的交互方式,例如手指在屏幕上放置的位置,并为您提供 API 和工具以简化此类交互体验: SlidingPaneLayout 1.2.0 可帮助您自动调整内容大小,以适配更多空间...; 垂直导航栏 在大屏幕上提供更符合人体工程学的体验; Constraint Layout 2.1 和 MotionLayout 有助于更新折叠和过渡状态; 组件上的最大宽度可避免操作过程中出现糟糕的...另一项值得注意的新增功能是 Ongoing Activities API,使您能够让用户在导航至别处 (以开始一些其他任务,例如音乐播放) 后再返回到您的应用。这两个库目前都处于 Alpha 阶段。...Android for Cars Android Auto 支持应用程序与许多现代汽车中内置的信息娱乐显示器连接。

    1.7K10

    可折叠设备的桌面模式

    这是一个简单的媒体播放器案例,它会自动调节尺寸以避免让折叠处出现在画面中间,并且调整播放控制组件的位置,从屏幕完全展开时嵌入画面中,变为当屏幕部分折叠时显示为单独的面板。...MotionLayout 结合了父类的灵活性,同时又具备在视图从一种姿态过渡到另一种时展示流畅动画的能力。...每当您获取到新的布局信息时,您可以查询显示屏特征,并检查设备当前显示中是否存在折叠或铰链: private fun onLayoutInfoChanged(newLayoutInfo: WindowLayoutInfo...如果您要实现横屏功能,那么大多数时候,边界会以一个在屏幕中垂直居中的矩形来表示,它和屏幕一样宽,并且高度与铰链相同 (对于可折叠设备而言值为 0,对于双屏幕设备而言会是两个屏幕之间的距离)。...{ // 视图在窗口中的位置要与显示特征在同一坐标空间中。

    2.4K30

    MotionLayout教你轻松玩转动画

    它能够自定义属性,来实现属性动画的特征;可以使用TransitionManager来实现界面的过渡动画,同时也可以结合CoordinatorLayout,来实现特效动画。...除此之外,MotionLayout在Android Studio中做了完美优化,提供了它专有的工具,能让开发者通过界面化的方式来更好的实现动画效果。...> 在使用的过程中,我们如果需要做动画,需要引用动画的xml,通过layoutDescription来引用。...对应的就是activity_motion_layout_scene文件 下面我们来看下文件具体内容 MotionScene 在MotionLayout中,如果你需要做动画,需要使用MotionScene...需要注意的是,这里定义的id是需要关联我们layout中的id,这样才能让MotionLayout进行匹配那个View需要进行动画。

    1.1K20

    太有意思了,教你实现实现王者荣耀团战!

    刚好最近了解到MotionLayout库,就用它实现吧?。 动画效果 ? 2 功能详解 MotionLayout 是一种布局类型,可帮助您管理应用中的运动和微件动画。...MotionLayout作为一个动画控件的好处就在于基本不用写java代码,全部在xml文件中搞定。而且我们只需要设定起始位置,结束位置以及一些中间状态,就能自动生成动画。...代码中也是可以设置是否显示动画路径,setDebugMode方法传入MotionLayout.DEBUG_SHOW_PATH属性即可。...motionlayout作为一个过渡动画,应该适用于一些控件切换,界面变化之类的动画。 比如DrawerLayout,viewpager切换的时候,可以设置一些view过渡的动画。...TransitionManager可以提供不同场景之间的过渡转换动画,需要设定两个场景(布局文件),然后两个场景中对应的控件id要对应上。最后通过java代码执行过渡动画。

    1.2K10

    【翻译】MotionLayout实现折叠工具栏(Part 1)

    这里父布局首先是一个 MotionScene ,它持有所有我们定义的过渡动画所需要的组件。...这里的 Transition 元素定义了过渡动画的开始和结束状态,以及过渡效果如何和用户进行交互: <Transition app:constraintSetEnd="@id/collapsed...元素 OnSwipe 把过渡动画和用户在 RecyclerView 上的拖拽操作绑定到了一起,也就是之前我们查看到的主布局中的列表。...在展开和折叠状态下, RecyclerView 列表的上边缘是处于不同位置的,因为它被约束到了 ID 为 toolbar_image 的 ImageView 图片下边缘,而这个过渡动画的实现正是由于控制着这个位置变量的值...这里卖个关子,在本系列文章的最后,我们将会介绍关于 MotionLayout 布局中更细粒度的一些控制。 三、总结 本篇的源代码请移步这里。 © 2018 , Mark Allison 。

    2K31

    Constraint Layout 2.0 用法详解

    也许您已熟悉了 Constraint Layout 1.1 版本中的功能,并开始用它来快速构建复杂的页面布局,而新版本除了包含 1.1 版本中的所有功能之外,还在 Android Studio 中集成了可以直接预览...您可以使用 Flow 来实现让布局随着应用屏幕尺寸的变化 (比如设备发生旋转后出现的屏幕宽度变化) 而动态地进行自适应。 ?...而是仅仅引用其它视图来辅助它们在布局系统中完成各自的布局功能。...您可以对视图的移动、滚动、缩放、旋转、淡入淡出等一系列动画行为进行自定义,甚至可以定义各个动画本身的自定义属性。它还可以处理手势操作所产生的物理移动效果,以及控制动画的速度。...使用 MotionLayout构建的动画是可追溯且可逆的,这意味着您可以随意切换到动画过程中任意一个点,甚至可以倒着执行动画效果。

    2.3K30

    ConstraintLayout2.0一篇写不完之Carousel

    Carousel视图,显示用户可以浏览的元素列表。...例如,假设我们有5个视图:处于开始状态的A,B,C,D,E。 start时,B,C,D可见,而A和E在屏幕外。...在next状态中,需要相反的情况发生,与B,C,D,E移动到其中A,B,C,D分别为和的观点从从右向左移动。 至关重要的是,start状态必须恰好位于原始视图的起始状态。...这种无限轮播的错觉的方式,实际上是将实际视图移回它们的位置,然后使用新的匹配内容将其重新初始化。...下图显示了这种机制(请注意“ item#”值): 转场Transitions 在ConstraintSet中定义的这三个状态,在start和next,以及start和previous之间创建两个Transitions

    1.5K20

    折叠屏上应用设计规范,了解一下?

    包括适当缩放以展示更多内容,如示例中的副标题和日期,以及较小的组合技术,例如在紧凑型的布局中对内容进行视觉分组并保持其相关性等。...△ 使用栏式网格将屏幕划分为三个主要区域 在本例中,三个主要区域通过重排来保持相同的信息层次结构,但以更加人性化的方式在小屏幕上显示。...△ 使用栏式网格在不同屏幕尺寸中对内容进行重排 记住网格系统有助于您选择组件行为,在不同的布局中,以对设备尺寸和场景最有意义的方式决定替换还是更改组件。...如下图所示,我们考虑一件事,当过渡到小屏幕尺寸时,面板上的内容应该放在哪里。...更多信息 除了让屏幕上的内容看起来更大之外,大屏幕还带来了一些其他机会,帮助您的应用大放异彩。

    4.5K20
    领券