java - 尝试将背景从白色更改为黑色,但无法运行此 timer() 方法,屏幕只有白色

标签 java android timer

我正在尝试制作一个简单的应用程序,每秒可以多次更改背景颜色。例如,在这里我尝试每 12.5 毫秒执行一次(如何输入 .5 部分?)

我对编程非常陌生,不知道如何调用这个方法/计时器来开始运行。

我运行应用程序,它打开带有白色背景的 Activity ,但没有任何反应。 由于我很新,当我查看 Timer() 文档时,我不太确定我在这里看到的是什么......如果有人可以提供帮助,那就太棒了。

  import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

import java.util.Timer;
import java.util.TimerTask;

import static android.support.v7.appcompat.R.attr.background;

/**
 * Created by Spader on 3/17/2017.
 */

public class FlashingScreen extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Remove title bar
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        //Remove notification bar
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //set content view AFTER ABOVE sequence (to avoid crash)
        this.setContentView(R.layout.flashing_screen);

        new Timer().scheduleAtFixedRate(new TimerTask(){
            @Override
            public void run(){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //stuff that updates ui
                      getWindow().getDecorView().setBackgroundColor(Color.WHITE);
                        getWindow().getDecorView().setBackgroundColor(Color.BLACK);

                    }
                    ;
                });
            }
        },0,12);



    }



}

最佳答案

1. getWindow().getDecorView().setBackgroundColor(Color.WHITE); getWindow().getDecorView().setBackgroundColor(Color.BLACK); 这始终设置黑色,因为它不是有条件的。您可能希望在每次执行可运行时使用 boolean 值来切换颜色。

  • 您不应该使用 getDecorView()。相反,从布局 xml 中找到 Root View 并更改颜色。

  • 在 Java 中,时间没有浮点值。所以你不能有 12.5 毫秒。

  • 关于java - 尝试将背景从白色更改为黑色,但无法运行此 timer() 方法,屏幕只有白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869601/

    相关文章:

    java - 图片上传崩溃

    java - 如何找到在 java 中启动的进程的进程 ID (pid)?

    java - 让家庭 Intent 转向特定的应用程序 Activity ?

    android - 如何在android中设置可取消的超时

    java - Android 应用程序中的周期性操作

    java - 如何使用 Java 解析后台进程的输出?

    android - 主题按钮 onClick 强制关闭应用程序

    android - 在 android 中降低或淡化声音

    java - 主线程中的 run() 方法完成后我的程序不会停止

    java - Wicket 口出现问题