首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的图像不通过onTick()方法每1秒改变一次?

为什么我的图像不通过onTick()方法每1秒改变一次?
EN

Stack Overflow用户
提问于 2015-03-18 16:38:58
回答 1查看 143关注 0票数 0

问题:图像变化,但不是在适当的时间.

特此CountDownTimer类引用:

CountDownTimer 将倒计时安排到将来的某个时间,并在此过程中每隔一段时间定期通知。 公共建设者 CountDownTimer(long millisInFuture, long countDownInterval) millisInFuture从调用开始()到完成倒计时和调用onFinish()为止的millis数。 countDownInterval沿途接收onTick(long)回调的间隔。 来源:http://developer.android.com/reference/android/os/CountDownTimer.html

假设我有以下两幅图像:

我想每1秒换一次,

我在这里做错什么了?有人能给我指路吗?

代码语言:javascript
运行
复制
    blinkingAlarm = new CountDownTimer(1000,1000) {

    boolean switchImage = false;

    @Override
    public void onTick(long millisUntilFinished) {


        if(!switchImage)
        {
            button1.setBackgroundResource(R.drawable.image1);
        }
        else if(switchImage)
        {
            button1.setBackgroundResource(R.drawable.image2);           
        }

        // Flip
        switchImage = (!switchImage);

    }


    @Override
    public void onFinish() {    

        // Loop
        blinkingAlarm.start();
    }
};

该方法正在由

代码语言:javascript
运行
复制
    @Override
    public void onClick(View v) {

        switch(v.getId())
        {

        case R.id.button1:  
            blinkingAlarm.start();
        break;

        }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 16:53:37

只需使用处理程序和postDelayed来代替CountDownTimer。在您的类中添加以下变量:

代码语言:javascript
运行
复制
private boolean switchImage = false;
private Handler handler;

然后使用以下代码:

代码语言:javascript
运行
复制
handler = new Handler();

Runnable changeImage = new Runnable() {
        @Override
        public void run() {
            if(!switchImage){
                button1.setBackgroundResource(R.drawable.image1);
                switchImage = true;
            } else {
                button1.setBackgroundResource(R.drawable.image2);
                switchImage = false;
            }
            handler.postDelayed(this, 1000);
        }
    };

    handler.postDelayed(changeImage, 1000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29127732

复制
相关文章

相似问题

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