旋转动画约束动画

旋转动画

1.用在让上下展开布局能够在展开合并的时候图标旋转180度,定义一个boolean值判断是需要旋转180度还是从180度回到0度。指定动画类型为相对自我的动画。

RotateAnimation rotate = new RotateAnimation(isShow ? 0 : 180, isShow ? 180 : 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

2.设置动画持续时间

rotate.setDuration(200);

3.设置动画结束时继续执行

 rotate.setFillAfter(true);

4.启动动画

arrowView.startAnimation(rotate);

约束动画

1.需要新建一个约束集ConstraintSet,获取要执行动画a的布局的父布局b,
克隆父布局b,clear清除a布局的约束,用connect 设置新的约束。设置动画方式,申请执行动画

        isShow = !isShow;
       ConstraintSet  constraintSet = new ConstraintSet();
        ConstraintLayout parentLayout = (ConstraintLayout) parentConstrainLayout.getParent();
        constraintSet.clone(parentLayout);
        constraintSet.clear(R.id.parent_constrain_layout, ConstraintSet.TOP);
        constraintSet.connect(R.id.parent_constrain_layout, ConstraintSet.TOP, R.id.view4, ConstraintSet.BOTTOM, isShow ? 0 : 300);
        AutoTransition transition = new AutoTransition();
        transition.setDuration(200);
        TransitionManager.beginDelayedTransition(parentLayout, transition);
        constraintSet.applyTo(parentLayout);

注意beginDelayedTransition和 constraintSet.applyTo调用的都是父布局

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容