编写一个Android程序通过定时器控制界面背景色,实现每隔1s自动更换一次背景色。
时间: 2024-03-23 14:43:54 浏览: 123
好的,以下是一个简单的Android程序,通过定时器控制界面背景色,并实现每隔1秒自动更换一次背景色。请按照以下步骤操作:
1. 在Android Studio中创建一个新的Android项目。
2. 在布局文件中添加一个TextView元素,用于显示背景色。
3. 在MainActivity.java文件中添加以下代码:
```java
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private int[] mColors = {Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW, Color.BLACK};
private Timer mTimer;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.text_view);
mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message message) {
int color = mColors[new Random().nextInt(mColors.length)];
mTextView.setBackgroundColor(color);
}
};
}
public void startTimer(View view) {
if (mTimer == null) {
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
mHandler.sendEmptyMessage(0);
}
}, 0, 1000);
}
}
public void stopTimer(View view) {
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
}
```
4. 在布局文件中添加两个Button元素,用于启动和停止定时器。
5. 运行程序,并点击“Start Timer”按钮启动定时器,点击“Stop Timer”按钮停止定时器,可以看到背景色每隔1秒会自动更换一次。
请注意,定时器在后台运行时会消耗一定的系统资源,因此应该在不需要定时器时及时停止它。
阅读全文