Android系统。在多个视图上应用自定义动画时出现问题

时间:2016-11-22 04:53:17

标签: java android android-animation

我已经编写了自己的摇动动画来动摇EditText。当我点击“SHAKE USER”时,第一个EditText摇动。当我点击“SHAKE PASS”时,两个EditText一起摇动,这不应该发生。屏幕截图已附上。Screenshot

这是动画文件
    shake.xml

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

<translate
    android:fromXDelta="0%p"
    android:toXDelta="2%"
    android:repeatCount="5"
    android:repeatMode="reverse"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="50" />
</set>  

以下是Java代码段

Animation shake = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.shake);

findViewById(R.id.b1).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            shakeView(etUser);
        }
    });
    findViewById(R.id.b2).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            shakeView(etPass);
        }
    });

private void shakeView(final View view) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            view.post(new Runnable() {
                @Override
                public void run() {
                    view.startAnimation(shake);
                }
            });
        }
    }).start();
}

谢谢!

1 个答案:

答案 0 :(得分:0)

似乎我自己找到了解决方案。动画结束后我调用view.clearAnimation(),一切正常