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)
が未定義です」と言われるのはなぜですか?これは正しく動作しませんか?
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);
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);
}
それは役立ちますか?
http://developer.Android.com/reference/Android/graphics/Color.html
Color()
コンストラクターはパラメーターを取りません
使用する
public static int rgb (int red, int green, int blue)
赤、緑、青のコンポーネントからcolor-intを返します。アルファコンポーネントは暗黙的に255(完全に不透明)です。これらのコンポーネント値は[0..255]である必要がありますが、範囲チェックは実行されないため、範囲外の場合、返される色は未定義です。
パラメータ赤色の赤赤コンポーネント[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
Color.rgb()メソッドを利用する
Color.rgb((randval)r,(randval)g,(randval)b);
ランダムな色を生成します。
コンストラクターColor(float、float、float)が未定義の場合は、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);
動作するはずですが、動作しない場合はコメントしてください。