首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中轮流闪烁ImageView

在Android中轮流闪烁ImageView
EN

Stack Overflow用户
提问于 2014-12-24 23:45:16
回答 1查看 69关注 0票数 0

我有四个ImageViews,我想通过开关来闪烁它们&转到列表中(例如:1 ImageView变得可见,等待一些时间,变得不可见,3 ImageView变得不可见,等待一些时间,变得可见等等)。我尝试了一些变体,但是ImageViews总是同时闪烁,有时主线程会进入休眠模式,而不是我想要的线程。如何正确地实现它?

我的一次尝试是:

代码语言:javascript
复制
...
//choose ImageView to flash
h = new Handler() {
        public void handleMessage(android.os.Message msg) {

            switch (msg.what) {
                case 0: flashing(CircleR); break;
                case 1: flashing(CircleY); break;
                case 2: flashing(CircleG); break;
                case 3: flashing(CircleB); break;
                default:
                    CircleR.setVisibility(View.VISIBLE);
                    CircleY.setVisibility(View.VISIBLE);
                    CircleG.setVisibility(View.VISIBLE);
                    CircleB.setVisibility(View.VISIBLE);
            }

        };
    };
...
Thread showList = new Thread (new Runnable() {
    @Override
    public void run() {



        for(int x: list){


            h.sendEmptyMessage(x);

            try {

                showList.sleep(2*PAUSE_DURATION);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }


        }
        h.sendEmptyMessage(4);


    }
});
...
//Here I start my thread
protected void SPStartTurn(){
    CircleR.setVisibility(View.INVISIBLE);
    CircleY.setVisibility(View.INVISIBLE);
    CircleG.setVisibility(View.INVISIBLE);
    CircleB.setVisibility(View.INVISIBLE);
    showList.run();

}
...
public void flashing(final View view) {
    view.setVisibility(View.VISIBLE);
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            view.setVisibility(View.INVISIBLE);
            //next = true;
        }
    }, PAUSE_DURATION);
}   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-25 12:58:56

使用计时器:

代码语言:javascript
复制
 static void ddd(Context context){

        CountDownTimer time = new CountDownTimer(60000, 1000) {//Now time is 1 minute
            public void onTick(long millisUntilFinished) {
            }
            public void onFinish() {
                ///////set the visibility
            }
        }.start ();
    }
    }

我想这会有帮助的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27643135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档