1

我正在尝试让 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()

4

0 回答 0