2012-07-08 68 views
6

我使用AnimationDrawable這樣的工作:AnimationDrawable不要在Android 2.2的

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation); 
rocketImage.setBackgroundResource(R.drawable.progress_blue_animation); 
rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
rocketAnimation.start(); 

此代碼工作在Android 3.0的/ 4.0/4.1/4.0,但不要在Android 2.2的工作。如何解決這個問題呢?

回答

17

據我所知,那是在2.1 Bug,2.2

可能的解決方法可能是:

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation); 
rocketImage.setBackgroundResource(R.drawable.progress_blue_animation); 
rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
rocketImage.post(new Runnable(){ 
    public void run(){ 
     rocketAnimation.start(); 
    } 
}); 

(但我沒有嘗試在目標> 2.1)

+1

與Android 4.0測試,它工作正常,並表示感謝。 – 2013-01-21 09:17:52

+2

謝謝,作品像魅力。 – 2013-02-01 15:25:18

+3

我想使用彈出窗口顯示加載動畫。其實它適用於4.0,但不運行在2.3.3上。我嘗試了很多東西,比如使用另一個線程,post方法等等,沒有解決問題。在2.3.3上它只顯示第一個圖像。如何解決這個問題? – 2013-05-09 19:59:32

0
view.post(new Runnable() { 
     public void run() { 
      anim.start(); 
     } 
    }); 
    view.startAnimation(anim); 

這對我有用。