在重新启动 activity 之前延迟动画
delay animation before restarting the activity
我有一个 GifImageButton 视图。我想启动它的动画然后重新启动 activity.
问题 是我希望动画在重新启动 activity 之前持续 3 秒。
我该怎么做?
这是我的代码:
myGifImageButton.setImageResource(R.drawable.animation);
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
据我所知,更好的方法是使用可运行的,所以我尝试了这个但没有成功:
// start the animation
myGifImageButton.setImageResource(R.drawable.animation);
// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
void run() {
handler.postDelayed(this, 3000);
}
};
handler.postDelayed(r, 3000);
// restart the activity
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
那么如何在重新启动 activity 之前延迟动画?
您的 runnable 不正确 - 您不断地重新发布相同的 runnable 但什么都不做。
改为尝试这样的事情:
// start the animation
myGifImageButton.setImageResource(R.drawable.animation);
// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
void run() {
// restart the activity
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
}
};
handler.postDelayed(r, 3000);
我有一个 GifImageButton 视图。我想启动它的动画然后重新启动 activity.
问题 是我希望动画在重新启动 activity 之前持续 3 秒。
我该怎么做?
这是我的代码:
myGifImageButton.setImageResource(R.drawable.animation);
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
据我所知,更好的方法是使用可运行的,所以我尝试了这个但没有成功:
// start the animation
myGifImageButton.setImageResource(R.drawable.animation);
// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
void run() {
handler.postDelayed(this, 3000);
}
};
handler.postDelayed(r, 3000);
// restart the activity
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
那么如何在重新启动 activity 之前延迟动画?
您的 runnable 不正确 - 您不断地重新发布相同的 runnable 但什么都不做。
改为尝试这样的事情:
// start the animation
myGifImageButton.setImageResource(R.drawable.animation);
// delay the animation
mHandler = new Handler();
final Runnable r = new Runnable() {
void run() {
// restart the activity
Intent intent = getIntent();
finish();
if (intent != null) {
startActivity(intent);
}
}
};
handler.postDelayed(r, 3000);