【问题标题】:Orchestrating Android Motion Layout animations编排 Android 运动布局动画
【发布时间】:2019-06-16 07:29:30
【问题描述】:

我有一个 xml 布局,我想在用户单击按钮时实现一些动画,所以我想使用带有 MotionScene 的新 MotionLayout。 在布局中,我有一个必须向上滑动的背景 FrameLayout,以及一个在用户单击时必须出现的 ImageView(alpha 属性动画);问题是首先布局应该向上滑动,然后出现 ImageView,但是在 MotionScene 的转换中,我只能指定一个开始的 ConstraintSet 和一个结束的 ConstraintSet,但不能指定中间的;我想过使用 KeyAttributes,但它们不允许我设置背景布局的高度,如果我在(例如)动画的 50% 处将它们与 translationY 属性一起使用,那么它会保持原样吗? 另外,如何从java代码开始一个MotionLayout动画呢? 提前致谢。

【问题讨论】:

    标签: android android-animation android-motionlayout


    【解决方案1】:

    关于使用 KeyAttribute 改变视图高度的问题

    <KeyPosition
      motion:keyPositionType="parentRelative"
      motion:percentHeight="1"
      motion:percentY="0"
      motion:percentX="0"
      motion:framePosition="50"
      motion:motionTarget="@id/sliding_view"/>
    

    这会将视图固定在左上角(带有 percentX 和 percentY),并将高度增加到动画的 50%。

    然后为图像视图设置动画:

    <KeyAttribute 
      motion:motionTarget="@id/image_view"
      motion:framePosition="50"
      android:alpha="0"/>
    

    从java代码开始运动场景转换:

    MotionLayout motionLayout = findViewById(R.id.motion_layout)   
    motionLayout.transitionToState(R.id.state)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多