Android动画新势力——MotionLayout( 三 )
文章插图
该元素用于指定当用户在不居中滑动时需要执行的操作 。 动画序列的速度和目标视图的动画 , 受滑动的速度和方向影响 , 滑动的速度和方向是通过可选参数配置来控制的 。属性
- motion:touchAnchorId:滑动时需要移动的视图 ID 。
- motion:touchAnchorSide:滑动所关联到的目标视图的锚点边 , MotionLayout 会尝试在该锚点与用户手指之间保持恒定的距离 。 (可取值有: left、right、top 和 bottom) 。
- motion:dragDirection:用户滑动的方向 , 如果设定了该值 , 这个
将仅支持向特定的方向滑动(可取值有:dragLeft、dragRight、dragUp 和 dragDown) - motion:dragScale:控制目标视图的滑动距离和用户手指滑动距离的相对比例 , 默认值是1 。 取值小于1时目标视图的移动速度小于手指滑动速度 , 取值大于1时目标视图的移动速度大于手指的滑动速度 。
- motion:maxVelocity:目标视图的最大速度 。
- motion:maxAcceleration:目标视图的最大加速度 。
- motion:onTouchUp:触摸收起时的动作 , 可选值有:stop(停止动画)、autoComplete(自动完成动画)、autoCompleteToEnd(自动完成到结束状态)、autoCompleteToStart(自动完成到开始状态)、decelerate(减速停止动画)、decelerateAndComplete(减速并完成动画)
前面提到 , 动画的声明是有 “开始状态” 和 “结束状态” 两个点 , 目标控件在这两个点之间移动 , 前面的例子都是直线的动画 , 显然这个实际使用中需要更复杂的动画 。
该元素用于指定视图在运动过程中 , 在特定的时刻的位置 。 换句话说就是运动轨迹上的关键点的位置 。 在一个 属性
- motion:motionTarget:当前关键点位置控制的目标视图的 ID 。
- motion:framePosition:关键帧位置 , 用百分比表示 , 取值为 0~100 之间的整数 。 (例如:取值20 , 表示该关键帧在运动轨迹的 20% 位置处 ) , 这个点将运动时间一分为二 , 两边的时间是相等的 , 如果运动轨迹长度不一样 , 那么将会造成运动速度不一样 。 但需要注意的是 , 关键帧的位置并不是关键点的位置 。
- motion:keyPositionType:关键点的类型 , 不同的类型会对 motion:percentX 和 motion:percentY 的值做出不一样的解析 。 取值有 parentRelative 、 deltaRelative 和pathRelative 。
- motion:percentX:X 轴方向的属性取值百分比 , 取值范围为0.0~1.0 。
- motion:percentY:Y 轴方向的属性取值百分比 , 取值范围为0.0~1.0 。
推荐阅读
- 诺基亚为何宁可逐渐没落也不采用Android系统?长知识了
- 特斯拉国产Model Y来了!造车新势力慌了?
- 联想发布新款11英寸Android平板电脑Tab P11
- 向日葵Android客户端5.0更新:新增两种免root远控方式
- 一加披露Android 11升级计划 OnePlus 6与Nord 10系列皆有份
- 外媒:华硕Zenfone 6即将正式推出Android 11更新
- Android/iOS版Word应用更新 改善标题导航体验
- MIUI 12.5动画大变脸:升级光锥动效
- 一张图看懂MIUI 12.5:今晚OTA、动画效果媲美iOS
- 苹果为何“磨刀霍霍”向汽车市场?秘密都在这里了