Android 动画旋转中心点坐标相对类型
2019-01-09 本文已影响0人
落叶随风花落入泥
1、Android 动画旋转中心点坐标相对类型(需要自己定义一个动画对比效果)
Animation.ABSOLUTE
默认值,围绕设置动画控件的左上角旋转与pivotXValue = 0,pivotYVaule = 0效果相同
Animation.RELATIVE_TO_SELF,
设置动画控件的左上角为坐标原点(0,0),动画旋转轴的坐标为(view.getWidthpivotXValue,view.getHeightpivotYValue)负数向左(X轴)/上(Y轴)偏移,正数向右(X轴)/下(Y轴)偏移;
Animation.RELATIVE_TO_PARENT.
设置动画控件的左上角为坐标原点(0,0),动画旋转轴的坐标为(parent.getWidthpivotXValue,parent.getHeightpivotYValue)【parent为view的父控件】负数向左(X轴)/上(Y轴)偏移,正数向右(X轴)/下(Y轴)偏移;
2、AnimationSet构造函数区别:
构造函数一
public AnimationSet(Context context, AttributeSet attrs) {}
这个表示从资源文件中进行加载AnimationSet。
构造函数二
public AnimationSet(boolean shareInterpolator) {}
这个表示在代码中直接构建AnimationSet。
如果传入的是true表示在AnimationSet中所填加的所有动画使用的插值器都与AnimationSet
具有关联性。
如果传递的是false表示AnimationSet中添加的每一个动画需要使用它自己的插值器。
3、AnimationSet 常用api
public void startAnimationSet() {
//创建动画,参数表示他的子动画是否共用一个插值器
AnimationSet animationSet = new AnimationSet(true);
//添加动画
animationSet.addAnimation(new AlphaAnimation(1.0f, 0.0f));
//设置插值器
animationSet.setInterpolator(new LinearInterpolator());
//设置动画持续时长
animationSet.setDuration(3000);
//设置动画结束之后是否保持动画的目标状态
animationSet.setFillAfter(true);
//设置动画结束之后是否保持动画开始时的状态
animationSet.setFillBefore(false);
//设置重复模式
animationSet.setRepeatMode(AnimationSet.REVERSE);
//设置重复次数
animationSet.setRepeatCount(AnimationSet.INFINITE);
//设置动画延时时间
animationSet.setStartOffset(2000);
//取消动画
animationSet.cancel();
//释放资源
animationSet.reset();
//开始动画
mIvImg.startAnimation(animationSet);
}