【问题标题】:Android java scale animation bouncesAndroid java缩放动画弹跳
【发布时间】:2018-01-25 20:01:39
【问题描述】:

这是代码:

    //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(); ,但我需要一些方法让动画停留在最后一帧。

我想要的是,如果我点击 Menu Imageview,它会变大,并保持更大,如果我再次按下它,它会变小,回到原来的大小。

【问题讨论】:

    标签: java android animation scale


    【解决方案1】:

    删除AnimationListeners并添加这两行

    MenuScaleBigger.setFillAfter(true);
    MenuScaleSmaller.setFillAfter(true);
    

    setFillAfter(true); 确保 View 在动画结束后停留在该位置并且不会回到它的基本位置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2017-04-17
      • 2018-03-09
      相关资源
      最近更新 更多