2011-07-12 61 views
2

當手機振動時,應顯示動畫。動畫第一次運作,但下一個動搖它不會這樣做。其他一切都正常工作,因爲每次我搖動它都會每次顯示新文本。它的動畫不會在第一次之後再次執行。我確實有爲onehot設置的動畫,但不應該再次觸發動畫?動畫無法正常工作

以下是我正在處理的活動。緊隨其後的是xml佈局。

public class Ask extends Activity{ 
    private SensorManager mSensorManager; 
    private ShakeEventListener mSensorListener; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.ask); 

      mSensorListener = new ShakeEventListener(); 
      mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
      mSensorManager.registerListener(mSensorListener, 
       mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
       SensorManager.SENSOR_DELAY_UI); 
      final ImageView v = (ImageView)findViewById(R.id.talk); 


      mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() { 

       public void onShake() { 
        v.setBackgroundResource(R.anim.budtalk); 
        AnimationDrawable talking = (AnimationDrawable)v.getBackground(); 
        talking.start(); 
       } 
      }); 
     } 

} 




    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/page1" 
    > 

    <ImageView android:background="@drawable/page2ani1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/talk"></ImageView> 
</RelativeLayout> 
+0

我不知道爲什麼在發佈代碼時出現這樣的痛苦 – steven

+0

選擇代碼部分並按ctrl + k使其更好。 – MByD

+0

我遇到同樣的問題。什麼都沒有? – slipbull

回答

0

這工作?

final Animation ani = AnimationUtils.loadAnimation(this,R.anim.budtalk); 
//later 
v.startAnimation(ani); 

這就是我如何反覆向TextView元素應用動畫。

失敗了,因爲你已經改變了ImageView,或許你可能需要一個v.postInvalidate()之後呢?