java如何设置随机颜色_java - 如何制作一个可以随机改变颜色(红色和蓝色)并同时启动计时器的指示器? - 堆栈内存溢出...

我想制作一个具有四个按钮(开始,停止1,停止2,结束)和显示指示器的原型。 按下开始时,应用程序应该启动,并且3秒后指示器应开始以5秒的间隔差随机显示颜色(红色和蓝色)。 每当出现这些颜色中的任何一种时,计时器也应从零开始。 我需要这些颜色随机更改10次。 时间应该在按stop1或stop2时停止。 我需要颜色显示和按下停止按钮(1或2)之间的时间差。 时差应保存在.txt文件中。 我已经编写了此代码,但是无法根据我的要求使指示器和计时器正常工作。 在这方面请帮助我。

公共类MainActivity扩展了AppCompatActivity {//最终字符串sdpath = Environment.getExternalStorageDirectory()。getAbsolutePath(); TextView计时器,timer1; EditText Participant_No; 参加者 按钮开始,停止1,停止2,结束,闪烁; long MillisecondTime,StartTime,TimeBuff,UpdateTime = 0L; 处理程序处理程序; int Seconds,分钟,MilliSeconds; 字符串s; FileOutputStream fos = null;

public Runnable runnable = new Runnable() {

public void run() {

MillisecondTime = SystemClock.uptimeMillis() - StartTime;

UpdateTime = TimeBuff + MillisecondTime;

Seconds = (int) (UpdateTime / 1000);

Minutes = Seconds / 60;

Seconds = Seconds % 60;

MilliSeconds = (int) (UpdateTime % 1000);

timer.setText("" + Minutes + ":"

+ String.format("%02d", Seconds) + ":"

+ String.format("%03d", MilliSeconds));

handler.postDelayed(this, 0);

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

handler = new Handler();

start = (Button) findViewById(R.id.button);

stop1 = (Button) findViewById(R.id.button2);

stop2 = (Button) findViewById(R.id.button3);

end = (Button) findViewById(R.id.button4);

timer = (TextView) findViewById(R.id.textView);

timer1 = (TextView) findViewById(R.id.textView2);

Participant_No = (EditText) findViewById(R.id.editText);

blink = (Button) findViewById(R.id.button5);

stop1.setEnabled(false);

stop2.setEnabled(false);

end.setEnabled(true);

start.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

s = "";

StartTime = SystemClock.uptimeMillis();

handler.postDelayed(runnable, 0);

stop1.setEnabled(true);

stop2.setEnabled(true);

blinktxt();

}

});

stop1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

s = s + "1," + timer.getText().toString() + "\n";

timer1.setText(timer.getText().toString());

start.setEnabled(true);

stop1.setEnabled(true);

stop2.setEnabled(true);

}

});

stop2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

s = s + "2," + timer.getText().toString() + "\n";

timer1.setText(timer.getText().toString());

start.setEnabled(true);

stop1.setEnabled(true);

stop2.setEnabled(true);

}

});

end.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

savefile();

}

});

}

public void savefile()

{

try {

participant = Integer.valueOf(Participant_No.getText().toString());

ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 23);

File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

File myfile = new File(folder, "CRT" + participant + ".txt");

fos = new FileOutputStream(myfile, true);

fos.write(s.getBytes());

fos.close();

Toast.makeText(getApplicationContext(), "the file is saved in " + myfile.getAbsolutePath(), Toast.LENGTH_LONG).show();

} catch(FileNotFoundException e){

e.printStackTrace();

} catch(IOException e){

e.printStackTrace();

}

}

@SuppressLint("WrongConstant")

public void blinktxt(){

ObjectAnimator animator = ObjectAnimator.ofInt(blink, "backgroundColor", Color.WHITE,Color.BLUE,Color.WHITE,Color.RED);

animator.setDuration(600);

animator.setEvaluator(new ArgbEvaluator());

animator.setRepeatMode(Animation.REVERSE);

animator.setRepeatCount(10);

animator.start();

}

}`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值