Android AnimationDrawable同时支持多个图像

时间:2014-12-04 22:40:04

标签: android animation

我需要开始用四张图像闪烁。我用for循环开始每个动画。当你的开始眨眼时,动画并没有被贬低。

我想要实现的效果是图像同时闪烁。我怎样才能做到这一点?

代码: 内部数组是四个图像资源

for(AnimationDrawable image : array){
  AnimationDrawable animationDrawable = (AnimationDrawable) image.getBackground();
  animationDrawable.start();
}

2 个答案:

答案 0 :(得分:1)

你不必为此使用循环。在创建补间动画资源文件(将其膨胀为AnimationDrawable)之后,将其设置为android:src的{​​{1}},然后在您的代码中,简单地调用此方法,就像您在那里所做的那样:< / p>

ImageView

在您的活动中,覆盖AnimationDrawable animationDrawable = (AnimationDrawable) image.getBackground();并启动动画,如下所示:

public void onWindowFocusChange()

您需要覆盖该方法的原因是,您只想在窗口具有焦点时立即启动动画,或者与用户进行交互。希望这会有所帮助。

您可以像这样创建补间动画资源,通过文件名引用它,并且必须将其放在@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); animationDrawable.start(); } 文件夹

drawable

答案 1 :(得分:0)

这对我有用:

int []mImageArray = {R.drawable.img1, R.drawable.img2, R.drawable.img3};

final Handler mHandler = new Handler();
Runnable runnable = new Runnable() 
{
  int i = 0;
  public void run() 
  {
    mImageView.setImageResource(mImageArray[i]);
    i++;
    if (i > mImageArray.length - 1)
    {
        i = 0;    
    }
    mHandler.postDelayed(this, 500);  // Set the interval delay
  }
  };
  mHandler.postDelayed(runnable, 4000); // Set the initial delay
}