Создание случайной цветной 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);

Он должен работать, но если он не работает, то комментируйте.