Android studio - 使用Interpolator为ImageView创建过渡/动画

时间:2015-03-15 20:00:30

标签: android animation button transition

我想知道是否有人可以帮我处理我的代码。羽绒服是代码 我在互联网上找到了,并调整了一下。因此,对于按钮设置 onClickListener 方法,该方法包括按下按钮时使用的两种方法。所以代码可以工作,但不是我想象的方式。当按下按钮时,它会消失并从左侧流入屏幕 AccelerateInterpolator。我希望它能做什么以及我应用程序中的其他按钮是。当按下按钮时,它将来自它的当前位置(让我们说 - 屏幕的中心)它会流出屏幕然后来回到它的位置

我不知道如何正确设置参数或更改方法。 谢谢你的帮助

button1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {


            findViewById(R.id.button1);

            TranslateAnimation translation;
            translation = new TranslateAnimation(getDisplayHeight(), 0f, 0f, 0f);
            translation.setStartOffset(500);
            translation.setDuration(2000);
            translation.setFillAfter(true);
            translation.setInterpolator(new AccelerateInterpolator());
            findViewById(R.id.button1).startAnimation(translation);

            button2.setVisibility(View.VISIBLE);


        }

        private int getDisplayHeight() {
            DisplayMetrics metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
            return metrics.widthPixels;
        }

    });

1 个答案:

答案 0 :(得分:0)

所以,1你没有正确使用translateanimation。

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

因此,从当前位置移动到新位置将是:

TranslateAnimation(0, 'change in X value you want', 0, 'change in Y value you want')

第二个让它回来你可以将重复计数设置为1并将模式设置为反转,(另一种方法是创建另一个translateAnimation并将两者组合成一个集合,我发现下面更容易):< / p>

transTo.setRepeatCount(1);
transTo.setRepeatMode(Animation.REVERSE);

第三,也许你已经知道,但这是一个视图动画,所以按钮只是在视觉上改变它的绘制位置,而不是它可以点击的位置。如果这对您的目的来说很好,那么请继续查看动画。要移动可点击区域,我建议使用属性动画。我在这里写了一篇关于他们的博客HERE以及关于观看动画HERE

的博客