如何使用处理程序 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(...) 一次)。

这应该可以解决问题。