2016-11-22 54 views
1

我已經編寫了自己的搖動動畫來搖動EditText。當我點擊「SHAKE USER」時,第一個EditText搖晃。當我點擊「SHAKE PASS」時,兩個EditText一起震動,這不應該發生。截圖附上。 ScreenshotAndroid。在多個視圖上應用自定義動畫時出現問題

這裏是動畫文件
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(); 
} 

謝謝!

+0

似乎我自己找到了解決方案。動畫結束後,我調用了'view.clearAnimation()',並且一切正常 – Andrew

回答

0

似乎我自己找到了解決方案。我在動畫結束後調用了view.clearAnimation(),並且一切正常。