生成随机颜色 Java

2022-09-02 23:05:21

我正在尝试通过使用随机数生成器为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);

为什么日食告诉我“构造函数未定义”?这不应该正常工作吗?Color(float, float, float)


答案 1

您应该使用 nextInt(int n):int 生成一个介于 0 和 255 之间的随机整数。(请注意,根据API,在Color方法中不会检查范围,因此如果您自己不限制它,则最终会得到无效的颜色值)

// 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);

然后使用静态 Color.rgb(r,g,b):int 方法获取 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);
}

它能帮上忙吗?


推荐