动画后,按钮消失了?

时间:2015-03-24 12:57:43

标签: android animation

我有一个屏幕,您可以通过按“生成”按钮为自己生成每日报价,当您单击按钮时,将播放动画,然后您将进行另一项活动。另一个名为“Szabaly”的活动将为您提供一个随机文本,然后您可以按后退按钮,然后您可以返回活动,您可以在此处按“生成”按钮。

问题是,我点击“生成”按钮,动画播放,我进入“Szabaly”活动没有任何问题,但是当我按下后退按钮时,我找不到我的“生成”按钮。它消失了。也许我必须以某种方式重置动画(状态?)?并将其设置为第一帧?如果你知道我的意思......

我想编写我的应用程序代码,要知道只要我进入活动,您可以点击生成按钮,将动画重置为第一帧,并且每当我得到动画时都可以播放它进入活动并点击它。

这是我的代码。

public void onClick(View v) {
        YoYo.with(Techniques.ZoomOut).duration(700)
                .withListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animation) {
                    }

                    @Override
                    public void onAnimationEnd(Animator animation) {
                        input.setText(null);
                        Intent myIntent = new Intent(MainActivity.this, Szabaly.class);
                        startActivity(myIntent);
                    }

我使用了这个库:Android ViewAnimations

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码,在此代码中您还可以在xml中设置fillAfter,duration,zoom value,repeat和其他动画参数。你也可以用同样的方式从xml创建其他动画。

View view = findViewById(R.id.viewLL);
        Animation zoomOutAnimation = AnimationUtils.loadAnimation(this,
                R.anim.zoom_out);

        // set animation in listener
        zoomOutAnimation .setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // copy all file before start animation

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation arg0) {
                // move to next activity

            }
        });

        view .startAnimation(zoomOutAnimation );

anim / zoom_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="400"
    android:fillAfter="false"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.0"
    android:toYScale="0.0" />

答案 1 :(得分:0)

YOYO不支持'fillafter'属性。因为在动画结束后,您显示的视图再次执行以下操作:YoYo.with(Techniques.ZoomIn).duration(1).playOn(animated_view);