美文网首页
Android 动画旋转中心点坐标相对类型

Android 动画旋转中心点坐标相对类型

作者: 落叶随风花落入泥 | 来源:发表于2019-01-09 15:06 被阅读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);
    }
    

    相关文章

      网友评论

          本文标题:Android 动画旋转中心点坐标相对类型

          本文链接:https://www.haomeiwen.com/subject/accgrqtx.html