我正在尝试测试一些东西,但我需要的只是一个以 1 秒的间隔在黑白屏幕之间闪烁的活动。我看过 postDelayed,但我仍然不确定我将如何实现它。这就是我现在所拥有的,但它不会“闪烁”
主要活动:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
public class Blink extends Activity {
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_blink);
while (i == 0) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
changeColor();
}
}, 1000);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void changeColor() {
if (findViewById(R.id.mylayout).getBackground().equals("#ffffff")) {
findViewById(R.id.mylayout).setBackgroundResource(Color.BLACK);
} else {
findViewById(R.id.mylayout).setBackgroundResource(Color.WHITE);
}
}
}
更新代码:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
public class Blink extends Activity {
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_blink);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
changeColor();
}
}, 1000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void changeColor() {
if (i == 0) {
findViewById(R.id.mylayout).setBackgroundColor(Color.WHITE);
i++;
} else if (i == 1) {
findViewById(R.id.mylayout).setBackgroundColor(Color.BLACK);
i--;
}
}
}
更新 2:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
public class Blink extends Activity {
int i = 0;
Boolean bool = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_blink);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
changeColor();
}
}, 1000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void changeColor() {
if (bool) {
findViewById(R.id.mylayout).setBackgroundColor(Color.WHITE);
bool = false;
} else {
findViewById(R.id.mylayout).setBackgroundColor(Color.BLACK);
bool = true;
}
}
}