Создание случайной цветной Java
Я пытаюсь создать случайный цвет, произвольно генерируя числа для значений R, G и B с генератором случайных чисел и используя значения для создания цвета. Следующий код находится в моем методе onCreate()
:
Random rand = new Random();
// Java 'Color' class takes 3 floats, from 0 to 1.
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();
Color randomColor = new Color(r, g, b);
Почему eclipse говорит мне: "Конструктор Color(float, float, float)
есть undefined"? Не должно ли это работать правильно?
Ответы
Ответ 1
Вы должны использовать nextInt (int n): int для генерации случайного целого числа от 0 до 255. (обратите внимание, что в соответствии с API диапазон не проверяется в цветовых методах, поэтому, если вы не ограничите его, вы получите недопустимые значения цвета)
// generate the random integers for r, g and b value
Random rand = new Random();
int r = rand.nextInt(255);
int g = rand.nextInt(255);
int b = rand.nextInt(255);
Затем получите значение цвета int со статическим методом Color.rgb(r, g, b): int. Единственным конструктором, который существует для android.graphics.Color
, является конструктор без аргументов.
int randomColor = Color.rgb(r,g,b);
Наконец, в качестве примера используйте метод setBackgroundColor (int c): void, чтобы установить цвет фона в представление.
View someView.setBackgroundColor(randomColor);
Ответ 2
public int randomColor(int alpha) {
int r = (int) (0xff * Math.random());
int g = (int) (0xff * Math.random());
int b = (int) (0xff * Math.random());
return Color.argb(alpha, r, g, b);
}
может ли это помочь?
Ответ 3
http://developer.android.com/reference/android/graphics/Color.html
Color()
Конструктор не принимает никаких параметров
Использование
public static int rgb (int red, int green, int blue)
Возвращает цвет-int из красных, зеленых, синих компонентов. Альфа-компонент - это импликация 255 (полностью непрозрачная). Эти значения компонентов должны быть [0..255], но проверка диапазона не выполняется, поэтому, если они находятся вне допустимого диапазона, возвращаемый цвет undefined.
Параметры
красный Красный компонент [0..255] цвета
зеленый зеленый компонент [0..255] цвета
синий синий компонент [0..255] цвета
Использование
Random rand = new Random();
int r = rand.nextInt(255);
...// rest of the code
int randomcolor = Color.rgb(r,g,b); // takes int as param
Ответ 4
Makeuse метода Color.rgb()
Color.rgb((randval)r,(randval)g,(randval)b);
для генерации случайного цвета.
Ответ 5
Если конструктор Color (float, float, float) является undefined, чем преобразовать его в int как.
Random rand = new Random();
// Java 'Color' class takes 3 floats, from 0 to 1.
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();
int Red = Integer.parseInt(String.valueOf(r));
int Green= Integer.parseInt(String.valueOf(g));
int Blue= Integer.parseInt(String.valueOf(b));
Color randomColor = new Color(Red , Green, Blue);
Но не знаю, что это работает или нет, если не работает, попробуйте это:
Random rand = new Random();
int r = rand.nextInt(255);
int g = rand.nextInt(255);
int b = rand.nextInt(255);
Color randomColor = new Color(r, g, b);
Он должен работать, но если он не работает, то комментируйте.