Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试将背景从白色更改为黑色,但可以';无法运行此timer()方法,屏幕仅为白色_Java_Android_Timer - Fatal编程技术网

Java 尝试将背景从白色更改为黑色,但可以';无法运行此timer()方法,屏幕仅为白色

Java 尝试将背景从白色更改为黑色,但可以';无法运行此timer()方法,屏幕仅为白色,java,android,timer,Java,Android,Timer,我正在尝试制作一个简单的应用程序,它每秒改变背景颜色很多次。例如,这里我尝试每12.5毫秒做一次(如何输入.5部分?) 我对编程非常陌生,不知道如何调用此方法/计时器开始运行 我运行应用程序,它以白色背景打开活动,但什么也没发生。 因为我是一个新手,当我查看Timer()文档时,我不确定我在看什么。。。。如果有人能帮上忙,那就太棒了 import android.app.Activity; import android.graphics.Color; import android.os.Bu

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

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

我运行应用程序,它以白色背景打开活动,但什么也没发生。 因为我是一个新手,当我查看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);



    }



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

  • 您不应该使用getDecorView()。而是从布局xml中查找根视图并更改颜色

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

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

  • 您不应该使用getDecorView()。而是从布局xml中查找根视图并更改颜色

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


  • 当您的屏幕保持白色时,很可能这段代码并没有达到您期望的效果。因此,首先了解如何真正改变背景色。然后,当这工作可靠时,再看看时机。记录在案:人的眼睛不会注意到12毫秒和12.5毫秒之间的差异。很好的反馈。你对如何“真正改变背景颜色”有什么建议吗?我不是一个深入的安卓专家。我会问谷歌,然后开始玩:-)当你的屏幕保持白色时,很可能这段代码并没有达到你期望的效果。因此,首先了解如何真正改变背景色。然后,当这工作可靠时,再看看时机。记录在案:人的眼睛不会注意到12毫秒和12.5毫秒之间的差异。很好的反馈。你对如何“真正改变背景颜色”有什么建议吗?我不是一个深入的安卓专家。我会问谷歌,然后开始玩:-)