我需要开始用四张图像闪烁。我用for循环开始每个动画。当你的开始眨眼时,动画并没有被贬低。
我想要实现的效果是图像同时闪烁。我怎样才能做到这一点?
代码: 内部数组是四个图像资源
for(AnimationDrawable image : array){
AnimationDrawable animationDrawable = (AnimationDrawable) image.getBackground();
animationDrawable.start();
}
答案 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
}