_Paint.setColor
_には整数が必要です。しかし、私が持っているのはColor
オブジェクトです。 Javaにcolor.getIntValue()
が表示されませんか?それでどうすればいいですか?私が欲しいのは
_public Something myMethod(Color rgb){
myPaint.setColor(rgb.getIntValue());
...
}
_
修正:_Android.graphics.Color;
_タグの1つとしてAndroid
があれば十分だと思いました。しかし、明らかにそうではありません。
まず、Android.graphics.Colorは静的メソッドのみで構成されるクラスです。新しいAndroid.graphics.Colorオブジェクトを作成した方法と理由は何ですか? (これはまったく役に立たず、オブジェクト自体はデータを保存しません)
とにかく...実際にデータを保存するオブジェクトを使用していると仮定します...
整数は4バイトで構成されます(Javaで)。標準のJava Colorオブジェクトから関数getRGB()を見ると、次のように見えますJava各色をARGB(Alpha -Red-Green-Blue)。この動作は、次のカスタムメソッドを使用して再現できます。
public int getIntFromColor(int Red, int Green, int Blue){
Red = (Red << 16) & 0x00FF0000; //Shift red 16-bits and mask out other stuff
Green = (Green << 8) & 0x0000FF00; //Shift Green 8-bits and mask out other stuff
Blue = Blue & 0x000000FF; //Mask out anything not blue.
return 0xFF000000 | Red | Green | Blue; //0xFF000000 for 100% Alpha. Bitwise OR everything together.
}
これは、個々の赤、緑、青の色成分を何らかの方法で取得でき、色に渡したすべての値が0〜255であることを前提としています。
RGB値が0〜1の浮動小数点のパーセンテージの形式である場合、次の方法を検討してください。
public int getIntFromColor(float Red, float Green, float Blue){
int R = Math.round(255 * Red);
int G = Math.round(255 * Green);
int B = Math.round(255 * Blue);
R = (R << 16) & 0x00FF0000;
G = (G << 8) & 0x0000FF00;
B = B & 0x000000FF;
return 0xFF000000 | R | G | B;
}
他の人が述べたように、標準のJavaオブジェクトを使用している場合は、getRGB();を使用してください。
Androidカラークラスを適切に使用することにした場合は、次のこともできます。
int RGB = Android.graphics.Color.argb(255, Red, Green, Blue); //Where Red, Green, Blue are the RGB components. The number 255 is for 100% Alpha
または
int RGB = Android.graphics.Color.rgb(Red, Green, Blue); //Where Red, Green, Blue are the RGB components.
他の人が述べているように...(2番目の関数は100%アルファを想定)
両方のメソッドは、基本的に上記で作成した最初のメソッドと同じことを行います。
Android用に開発している場合、Colorのメソッドはrgb(int、int、int)です
だからあなたは次のようなことをするだろう
myPaint.setColor(Color.rgb(int, int, int));
個々の色の値を取得するには、次の方法を使用できます。
Color.red(int color)
Color.blue(int color)
Color.green(int color)
詳細については このドキュメント を参照してください
Color
には、色をint
として返す getRGB() メソッドがあります。
int color =(A&0xff)<< 24 | (R&0xff)<< 16 | (G&0xff)<< 8 | (B&0xff);
Color.xmlで値を宣言できます。したがって、以下のコードを呼び出すことで整数値を取得できます。
context.getColor(int resId);