我的动画在按下按钮时运行,现在我希望动画在活动开始时启动。以下是我的代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
animationStart();
Button onButton = (Button) findViewById(R.id.button1);
onButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
animationStart();
}
});
}
private void animationStart() {
ImageView imageanimate = (ImageView) findViewById(R.id.imageView1);
imageanimate.setBackgroundResource(R.drawable.ball_animation);
animation = (AnimationDrawable) imageanimate
.getDrawable();
if (animation.isRunning()) {
animation.stop();
}
animation.start();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
animationStart();
super.onStart();
}
}
我还尝试在onstart方法中初始化动画,但它现在正在工作。
我希望当活动开始时动画应该播放。任何人都可以指导我正确的方式,因为它不起作用。动画仅适用于按下按钮。
答案 0 :(得分:1)
如果你想在onCreate或onStart中启动动画,你应该在处理程序中以1000-2000毫秒的后延迟启动动画,这将有足够的时间来初始化imageview。
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
//Start your animation here
}
},1000);
}
答案 1 :(得分:0)
我不测试它,我希望它能帮到你。
protected void onCreate(Bundle savedInstanceState) {
//....
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
animationStart();
}
},0);
//...
}
答案 2 :(得分:0)
private boolean mDoStartingAnim;
public void onCreate(Bundle savedInstanceState) {
// ...
mDoStartingAnim= true;
// ...
}
public void onResume() {
if (mDoStartingAnim) {
animationStart();
mDoStartingAnim = false;
}
}
我希望它能帮到你..