如何使用处理程序 postDelayed 延迟图像的出现
How to delay appearance of image with handler postDelayed
我有五个文本视图。每个人都有一个可见性设置为消失的徽章。我希望当我按下一个按钮时,徽章一次出现一个,彼此之间延迟 2 秒。这是我的 onClick 事件的实际代码:
public void checkAnswers(View v)
{
Handler handler = new Handler(Looper.getMainLooper());
fadeInAnimation = AnimationUtils.loadAnimation(activity_Trivia.this, R.anim.fade_in);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge1.startAnimation(fadeInAnimation);
badge1.setVisibility(View.VISIBLE);
}
}, 0);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge2.startAnimation(fadeInAnimation);
badge2.setVisibility(View.VISIBLE);
}
}, 2000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge3.startAnimation(fadeInAnimation);
badge3.setVisibility(View.VISIBLE);
}
}, 4000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge4.startAnimation(fadeInAnimation);
badge4.setVisibility(View.VISIBLE);
}
}, 6000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge5.startAnimation(fadeInAnimation);
badge5.setVisibility(View.VISIBLE);
}
}, 8000);
}
问题是在第一次延迟后,当第二个徽章出现时,第一个徽章隐藏并与第二个徽章一起再次出现,依此类推。我希望第一个徽章,第二个徽章......在下一个徽章出现时保持可见。有任何想法吗?我搜索了但什么也没找到。谢谢!
为每个徽章创建一个单独的 Animation
对象(为每个徽章调用 AnimationUtils.loadAnimation(...)
一次)。
这应该可以解决问题。
我有五个文本视图。每个人都有一个可见性设置为消失的徽章。我希望当我按下一个按钮时,徽章一次出现一个,彼此之间延迟 2 秒。这是我的 onClick 事件的实际代码:
public void checkAnswers(View v)
{
Handler handler = new Handler(Looper.getMainLooper());
fadeInAnimation = AnimationUtils.loadAnimation(activity_Trivia.this, R.anim.fade_in);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge1.startAnimation(fadeInAnimation);
badge1.setVisibility(View.VISIBLE);
}
}, 0);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge2.startAnimation(fadeInAnimation);
badge2.setVisibility(View.VISIBLE);
}
}, 2000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge3.startAnimation(fadeInAnimation);
badge3.setVisibility(View.VISIBLE);
}
}, 4000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge4.startAnimation(fadeInAnimation);
badge4.setVisibility(View.VISIBLE);
}
}, 6000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
badge5.startAnimation(fadeInAnimation);
badge5.setVisibility(View.VISIBLE);
}
}, 8000);
}
问题是在第一次延迟后,当第二个徽章出现时,第一个徽章隐藏并与第二个徽章一起再次出现,依此类推。我希望第一个徽章,第二个徽章......在下一个徽章出现时保持可见。有任何想法吗?我搜索了但什么也没找到。谢谢!
为每个徽章创建一个单独的 Animation
对象(为每个徽章调用 AnimationUtils.loadAnimation(...)
一次)。
这应该可以解决问题。