2012-07-08 66 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); 

这对我有用。