我正在尝试逐帧动画在2.2 vm机器上使用eclipse在Android 2.2上运行,我不能为我的生活让它运行。它就位于动画的第一帧。
这是我的活动代码:
public class SpriteAnimationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView lView = (ImageView) findViewById(R.id.imageView1);
AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();
lAnimation.start();
}
}
这是我的动画列表xml文件:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item android:drawable="@drawable/a1" android:duration="100" />
<item android:drawable="@drawable/a2" android:duration="100" />
<item android:drawable="@drawable/a3" android:duration="100" />
</animation-list>
我在主屏幕上使用imageView小部件通过设置背景来显示图像。我试着按照这里的指南http://developer.android.com/guide/topics/graphics/drawable-animation.html但我似乎无法让它工作
答案 0 :(得分:2)
答案 1 :(得分:1)
你必须强行开始动画......
ImageView lView = (ImageView) findViewById(R.id.imageView1);
lView.setBackgroundResource(R.drawable.my_animation_list);
final AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();
// Button btn=
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
lAnimation.start();
}
});
答案 2 :(得分:0)
您必须通过按钮单击侦听器手动启动动画或使用如下所示的onWindowFocusChange侦听器
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus) {
lAnimation.start();
}
}