当前位置: 首页 > 知识库问答 >
问题:

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

陈淳
2023-03-14

特此使用CountDownTimer类引用:

安排一个倒计时,直到未来的某个时间,并定期通知沿途的间隔。

公共建设者

倒计时(长毫秒未来,长倒计时间隔)

millisInFuture从调用start()到完成倒计时并调用onFinish()的未来毫秒数。

countDownInterval接收onTick(长)回调的时间间隔。

资料来源:http://developer.android.com/reference/android/os/CountDownTimer.html

假设我有以下两个图像:

  • 在这里输入图像描述
  • 在这里输入图像描述

我想每1秒换一次,

我到底做错了什么?有人能给我一个方向吗?

    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();
    }
};

正在由调用该方法

    @Override
    public void onClick(View v) {

        switch(v.getId())
        {

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

        }

}

共有1个答案

司马德水
2023-03-14

只需使用处理程序和postDelayed,而不是CountDownTimer。在类中添加以下变量:

private boolean switchImage = false;
private Handler handler;

然后使用以下代码:

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);
 类似资料:
  • 我做了一个数组,所有的图像都在int中,我想在imageView中每3秒钟改变这些图像,我尝试了所有的解决方案,但显示了一些错误,我无法解决。 java文件(home.java) xml文件(home.xml)

  • 我正在构建一个gradebook来存储学生和教师,每个学生和教师都有一个唯一的ID,以及他们各自在Student和Teacher对象的ArrayList中注册或教学的类。我有文件夹路径“j:/compsci/类/”,为每个类存储一个文本文件。 文本文件格式: 第1行:班级名称、教师ID、期间、荣誉?、班级ID 第2行:班级中每个学生的学生ID(用逗号分隔)。 在这里,我初始化了每个学生正在接受的所

  • 我有一个灰色的抽屉。无论何时用户喜欢一张图片,这可绘制的,但应在颜色黑色(阿尔法的可绘制需要停留)。 我正在这样做:

  • 问题内容: 我有以下代码: 以及其他各种方法,例如@ Before,@ After,@ Test或@AfterClass方法。 测试在启动时不会像看起来的那样失败。有谁可以帮助我吗? 我有JUnit 4.5 该方法无法立即调用注释为@before的setUp()。类def是: 问题答案: 不要扩展TestCase并同时使用注释! 如果需要使用批注创建测试套件,请使用RunWith批注,例如: (按

  • 问题内容: 我正在尝试使此函数正常工作,该函数对参数进行请求,然后将responseText发送给该函数。 似乎只能做到(由于Firebug命令)。 这里是: 问题答案: 我解决了分配onload事件而不是onreadystatechange的问题:

  • 问题内容: 我有一个图片,稍后会使用javascript用src动态填充该图片,但为简便起见,我希望该图片标签在页面加载时存在,但什么也不显示。我知道这是无效的,那么最好的方法是什么? 问题答案: 虽然没有有效的方法来省略图像的来源,但是 有些 来源不会导致服务器命中。我最近对s 遇到了类似的问题,并确定是最佳选择。不完全是! 从开始(省略协议)开始,将使用当前页面的协议,从而防止HTTPS页面中