如何使用处理程序postDelayed延迟图像的外观

时间:2015-04-21 14:31:37

标签: android delay android-handler

我有五个textview。每个人都有一个可见度已经消失的徽章。我希望当我按下按钮时,徽章一次出现一个,相互之间延迟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);
    }

问题在于,在第一次延迟后,当出现第二个徽章时​​,第一个徽章会隐藏并再次显示第二个徽章,依此类推。我想要第一个徽章,第二个徽章......在下一个徽章出现时保持可见。有任何想法吗?我搜索但没有出现。谢谢!

1 个答案:

答案 0 :(得分:2)

为每个徽章创建一个单独的Animation对象(每个徽章一次调用AnimationUtils.loadAnimation(...))。

这应该可以解决问题。