我正在尝试让 android 画布从蓝色闪烁到红色。我想控制闪烁是可调的。例如,每 100 毫秒更改一次颜色,持续 3 秒。
我曾尝试使用 Timer 和 Threads,但应用程序似乎崩溃了。我试过有和没有invalidate()
. 我假设我的逻辑不正确,或者我不完全理解它是如何执行的。可能它发生得很快,我看不到并崩溃或创建了太多导致应用程序崩溃的线程。
伪代码
// canvas change color to blue
// wait 100 milliseconds
// canvas change color to red
// wait 100 milliseconds
// canvas change color to blue
// execute for 3 seconds
我会输入代码,但由于我尝试了多个解决方案,每个解决方案都具有相同的崩溃或挂起效果,我假设它们不会那么有用。
我知道我可以创建一个可绘制的矩形来填充屏幕,或者只是为整个画布着色,这可能是更好的方法。
我创建了两个油漆对象,如果我定期填充画布,它们当然都可以工作。
Paint paint2 = new Paint();
paint2.setColor(Color.RED);
paint2.setStyle(Style.FILL);
canvas.drawPaint(paint2);
Paint paint1 = new Paint();
paint1.setColor(Color.BLUE);
paint1.setStyle(Style.FILL);
canvas.drawPaint(paint1);
总结一下:我希望画布每 100 毫秒在蓝色和红色之间闪烁 3 秒。但也希望延迟(100 毫秒)和持续时间(3 秒)都可以调整,这样我就可以增加或减少它们。
我试过使用:
计时器
线程
形状可绘制
System.currentTimeMillis()