在显示代码之前无法解释这一点,所以:
final int randomcolor = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256),
rnd.nextInt(256));
final Runnable updater = new Runnable() {
@Override
public void run() {
relativeLayout.setBackgroundColor(randomcolor);
handler.postDelayed(this, 25);
}
}
};
上面我有一个名为 Updater 的可运行文件...下面我通过单击按钮启动它..
Button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
handler.postDelayed(updater,2000 );
}
});
(我已经删掉了我的大部分代码,所以这可能没有意义我为什么要这样做。上面将创建一个无限循环,因为可运行对象被困在没有出路的地方......假设我可以摆脱它。)
代码说明
所有这一切都在 Oncreate() 中...所以,单击按钮后,我将在延迟两秒后启动 Runnable...时间结束(就像我说的,忽略最后一点。)
你会看到我在可运行文件中只做一件事,改变相对布局的背景颜色。
重要的是,我想要的是每 25 毫秒后,即每次运行可运行文件时,它应该将相对布局的背景颜色更改为随机的颜色。它可能看起来像一个醉汉华丽的癫痫诱导应用程序......把原因留给我(再次)
问题是,处理程序不能采用非最终可运行...并且每次运行的随机变量不能是最终的,最终和非最终不能一起工作。(再读一遍)
所以,每次运行可运行文件时,我都需要一个新的颜色整数......这样每次运行时,它都会将背景颜色更改为不同且随机的颜色。
我觉得解决方案很简单,但我似乎无法确定..
任何想法的人?我该怎么做呢?