Android java规模动画反弹

时间:2018-01-25 20:01:40

标签: java android animation scale

这是代码:

    //These are the animations of the Menu button getting bigger and smaller
    final ScaleAnimation MenuScaleBigger = new ScaleAnimation(1f, 1.1f, 1f, 1.1f,1,0.5f,1,0.5f);
    MenuScaleBigger.setDuration(400);
    final ScaleAnimation MenuScaleSmaller = new ScaleAnimation(1.1f, 1f, 1.1f, 1f,1,0.5f,1,0.5f);
    MenuScaleSmaller.setDuration(400);

    MenuScaleBigger.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Menu.setScaleX(1.1f);
            Menu.setScaleY(1.1f);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

    MenuScaleSmaller.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Menu.setScaleX(1f);
            Menu.setScaleY(1f);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });
    //This is the click listener that starts the animation of getting bigger
    Menu.setOnClickListener(new View.OnClickListener() {
        int counter = 0;
        @Override
        public void onClick(View v) {
            if(counter == 0){
                Menu.startAnimation(MenuScaleBigger);
                counter++;
            }
            else{
                Menu.startAnimation(MenuScaleSmaller);
                counter--;
            }
        }
    });

我认为弹跳是因为Menu.ScaleX();和Menu.ScaleY(); ,但我需要一些方法让动画停留在最后一帧。

我想要的是,如果我点击菜单图像视图它会变得更大,并且保持更大,如果我再次按它,​​它会变得更小,回到原始大小。

1 个答案:

答案 0 :(得分:0)

删除MenuScaleBigger.setFillAfter(true); MenuScaleSmaller.setFillAfter(true); 并添加这两行

setFillAfter(true);

View确保{{1}}在动画后保留在该位置,并且不会回到它的基准位置