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);
}
上一篇下一篇

猜你喜欢

热点阅读