任何人都可以看到我做错了什么。我创建一个动画,加载50帧。尝试启动它,但没有任何反应。最初的起始帧就在那里,但没有任何反应。我打印了动画对象拥有的帧数,它表示50。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ShowCircle(50);
}
public void ShowCircle(final int percentage){
final ImageView ring = (ImageView)findViewById(R.id.ring);
animation = new AnimationDrawable();
ring.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i = 0; i != percentage; i++){
try
{
final int id = R.drawable.class.getField("rings_" + i).getInt(0);
animation.addFrame(getResources().getDrawable(id), 100);
}
catch(NoSuchFieldException n)
{
MessageBox(n.toString());
}
catch(IllegalAccessException e)
{
MessageBox(e.toString());
}
}
animation.setOneShot(false);
ring.setBackgroundDrawable(animation);
ring.post(new Starter());
MessageBox("# of frames: " + Integer.toString(animation.getNumberOfFrames()));
}
});
}
class Starter implements Runnable{
public void run(){
animation.start();
}
}
答案 0 :(得分:0)
好的,愚蠢的我,ImageView有一个默认图像。动画图像仅设置为背景,这就是为什么它永远不可见......