我有一个带有默认图像的图像视图。现在,当我尝试单击它时,我希望它动画显示 4 帧图像。我怎么能做到这一点,我尝试了一种更简单的方法(更愚蠢的方法),将 imageresource 更改了 4 次,正如预期的那样,图像变化如此之快以至于动画图像效果不可见。有任何想法吗?
我尝试了这种方法:
Gem = (ImageView)v;
Gem.setImageResource(com.example.gems.R.drawable.bd1);
Gem.postDelayed(new Runnable() {
public void run() {
Gem.setImageResource(com.example.gems.R.drawable.bd2);
Gem.postDelayed(new Runnable() {
public void run() {
Gem.setImageResource(com.example.gems.R.drawable.bd3);
Gem.postDelayed(new Runnable() {
public void run() {
Gem.setImageResource(com.example.gems.R.drawable.bd4);
Gem.postDelayed(new Runnable() {
public void run() {
}
}, 500);
}
}, 500);
}
}, 500);
}
}, 500);
它起作用了,但是有没有更好的方法而不用编码太多行?我有 25 种图像,每张图像有 4 帧。
编辑:
我尝试使用 xml 转换文件:
Java 文件:
Resources res = this.getResources();
Gem = (ImageView)v;
TransitionDrawable transition;
transition = (TransitionDrawable)
res.getDrawable(R.drawable.blue_diamond_animation);
Gem.setImageDrawable(transition);
transition.startTransition(3000);
xml文件:
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bd1"></item>
<item android:drawable="@drawable/bd2"></item>
<item android:drawable="@drawable/bd3"></item>
<item android:drawable="@drawable/bd4"></item>
<item android:drawable="@drawable/invi"></item>
</transition>
这似乎可行,但我不想在过渡中绘制这些图像。我想在过渡中更改背景。我尝试将其更改android:drawable
为,android:drawable
但它不起作用。