我正在努力让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秒)都可以调整,这样我就可以增加或减少它们。
我尝试过使用:
计时器
线程
Shape drawable
System.currentTimeMillis的()