Как сделать «постоянно» меняющийся цвет фона в android studio при нажатии на кнопку?
Собственно вот код кнопки на которую стартует смена нашего фона на случайный цвет
public void onRdmButtonClick(View view) {
int x=0;
Random rand = new Random();
while(x<5) {
mRelativeLayout.setBackgroundColor(-rand.nextInt(0xFFFFFF));
x++;
}
}
Да цвет меняется на рандомный, но только если самому постоянно тыкать. Цикл не делает это за меня по непонятным причинам.
Ну я думаю что вполне себе все меняется, может даже и рандомно, но вы этого просто не успеваете увидеть. Задержки то в цикле нету. Он за десяток машинных тактов закончится, это меньше чем может увидеть человеческий глаз. Самый простой вариант - вставить sleep. Но т.к. это у вас скорее всего основной UI поток, то так делать на продакшне нельзя - надо делать отдельный поток, чтобы не фризить поток интерфейса.
Цикл и функцию, да. Т.е. по нажатию кнопки вы должны создавать новый поток, причем UI-safetly (не помню уже как оно в дроиде), и в его цикле менять цвета с задержкой.