Android ConstraintLayout2.0 过度动画MotionLayout MotionScene2

然后是变化时进行背景色的改变

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




    

        
    

    
        

            
        
    


    

        

            

        


    


可以看到 他这个 是可以直接加属性的,属性动画也能做到这个 但是这个几乎是每一个坐标点对应一个色值

有了

motion:attributeName="BackgroundColor"

那就一定有其他的


自定义属性可以通过属性名指定,但是它必须存在getter/setter方法,就像这种:

  • getter: getName (比如getBackgrounColor)
  • setter: setName (比如setBackgroundColor)

自定义属性的值也必须指定:(不同的类型的值需要不一样的赋值方式)

  • customColorValue --> 针对颜色数据
  • customIntegerValue --> 针对整型数据
  • customFloatValue–> 针对浮点型数据
  • customStringValue–> 针对字符串
  • customDimension–> 针对尺寸
  • customBoolean–> 针对布尔型

原文是这么写的,既然是 sset get 可以 那么 就可以试一试

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




    

        
    

    
        

            
            
        
    


    

        

            
            

        


    



官方举例是这样的,结合了一个新的ImageView 扩展板,

ImageFilterView

就是加了个筛选器 有木有


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

梯形一下 这里呢 尽量找 那种尺寸,内容填充差不多的 图片,看起来不突兀,或者可以把内容填充小的 放左边


这个crossfade 是 人家 imagefilterview 自带的 有set get的 方法 所有 嘿嘿 你可以 自定View 然后 手动提供 set get

ImageFilterView提供了很多功能:

saturation : 0 = grayscale, 1 = original, 2 = hyper saturated (饱和度 0:灰度 1:原始 2: 超饱和)

contrast : 1 = unchanged, 0 = gray, 2 = high contrast (对比度 1:无改变 0:灰色 2:高对比度)

warmth : 1 = neutral, 2 = warm (red tint), 0.5 = cold (blue tint) (暖色 1:正常的 2:暖色调(偏红色的) 0.5: 冷色调(偏蓝色的))

像是量身定制 一样

试一下


 
  

 

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

看到没,吸干了有木有,色值一直在0-1 之间 叫什么饱和度


Keyframe (1/2), 位置

这里有好几种方式(pathRelative, deltaRelative, parentRelative) 可以帮助你实现关键帧的位置,这个老牛逼了 ,就是冲这个来的

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

粘一下,属性大概就这些了

简单快速介绍一下关键帧的位置,这里我们指定一下在转换的50%时,目标view移动到屏幕的25%的位置。

然后我抄了一下


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

 


        

        
            
        
        
    

其中啊  这个 target 属性 ,名字改成了MotionTarget

然后啊,同样的引入了 attribute 这个,

KeyAttribute

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


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


            

            
        

这里这个framePosition 看不懂,然后我写成俩个10

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

左边绘制的虚线都宽了


motion:keyPositionType="pathRelative"

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android ConstraintLayout2.0 过度动画MotionLayout MotionScene2)