android 如何动画展开/折叠箭头180度时,箭头被单击?

ar7v8xwq  于 2022-11-27  发布在  Android
关注(0)|答案(2)|浏览(188)

在可展开的回收器视图中,**linearLayout**上有一个“展开更多”图标

我想当点击linearLayout被点击布局将扩大,这个图标将旋转动画在180度,如下图-

这是我的操作代码:

rotationAngle = rotationAngle == 0 ? 180 : 0;
expandArrow.animate().rotation(rotationAngle).setDuration(500).start();

其中rotationalAngle=0;是全局声明的。
你能给我找个合适的解决办法吗?

bf1o4zei

bf1o4zei1#

ImageV.animate().rotation(isExpanded()? -180 : 0  )
                        .setInterpolator(new SineInOut60())
                        .setDuration(2000)
                        .withLayer();
vxf3dgd4

vxf3dgd42#

您可以使用AnimationListener在动画完成时设置新的Drawable:

expandArrow.animate().setListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animator) {
            
        }

        @Override
        public void onAnimationEnd(Animator animator) {
            expandIcon.setImageResource(R.drawable.arrow_up);
        }

        @Override
        public void onAnimationCancel(Animator animator) {

        }

        @Override
        public void onAnimationRepeat(Animator animator) {

        }
    }).rotation(rotationAngle).setDuration(500).start();

相关问题