Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4

其实吧,这一篇都是2的扩展



首先写个简单的例子

发现一个大坑 不可以是View

Main





    


scene




    
        
    

    
        
    

    
        
    

效果图


Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第1张图片



接下来 看属性

  • motion:framePosition 定义关键帧在什么时候起作用(0 - 100) 0为开始时 100为完成时
  • motion:target 作用的组件是谁
  • motion:transtionEasing 时间模型(默认是是线性的,这个和属性动画的插值器是类似的含义)
  • motion:curveFit 组件在动画的过程中,路径时是曲线(默认) 还是 直线。曲线路径会使得转换时更加的平滑,当然你也可以定义成直线的。

那会就觉得 framepositon怪怪的 这么解释了一下 还是看不懂~然后仔细想了一下,定义区间0-100

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第2张图片

懂了吧,

motion:framePosition="80"

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第3张图片

然后

motion:transitionEasing="linear"  插值器 匀速的

motion:curveFit="spline" 感觉没什么俩样

然后来一个点 让他变成 曲线

这个有点像控制点 唯一不一样的就是 这个是真是位置点 控制点 是有算法偏差的

 motion:keyPositionType="parentRelative"
                motion:percentX="0.5"
                motion:percentY="0.25"

首先是理解

keyPositionType

1.parentRelative

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第4张图片

原文:这个坐标系与父容器有关。这是一种非常直接和全凭直觉的方式,来表示了关键帧所在的位置,我们基本上这个就足够了。大多相对于父容器的运动,我们一般都会使用它。

然后可以一套组合

 
            
            
            
        

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第5张图片 

pathRelative

这个比刚才那个吊多了 那个 只能是一个 点 这个比较多

   

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第6张图片

 效果与刚才简直天差地别 然后 我仔细分析了一下

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第7张图片

然后分析完了 试一下吧

 

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第8张图片

bingo!


然后来一套组合拳

有一个问题 那就是

framePosition 这个是一个完成度 之类的意思  总的完成度

所以在你的 KeyFrameSet 里的  KeyPosition 对应的framePosition 应该是递增的


        
            
            
            
        
效果:

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第9张图片


deltaRelative

这个以自身开展坐标

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第10张图片

 

        
            
            
            
        

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第11张图片

属性:Android ConstraintLayout2.0 过度动画MotionLayout MotionScene4_第12张图片

试了一下 变成曲线了

percentX  y 不写 ,默认就是0.5

剩下的慢慢补充吧

 

 

 

 

 

你可能感兴趣的:(学习ing)