intカラーをrgbバイト配列に変換したい。私はColorPickerDialog(ColorPickerDialog)を使用しています。Java AndroidスタジオカラーIntからバイト
色を選択すると(青色と言えば)、整数値-16775425が得られます。
これは、16進数で0xFF 00 06 FFに従います。
私の知るとおりに:赤:0x0、緑:0x06、青:0xFF。私がMS-Paint(0006FF)でテストすれば、私は青い色を得るでしょう。私は次のコードでバイト配列に整数値をconverteしようとした場合
:
public byte [] getColorByte(int color1){
byte[] color = new byte[3];
color[2] = (byte) (color1 & 0xFF);
color[1] = (byte) ((color1 >> 8) & 0xFF);
color[0] = (byte) ((color1 >> 16) & 0xFF);
return color;
私は[0,6、-1]でバイト配列を取得します。
しかし、私はColor.rgb機能を持つボタンの背景色を設定したい場合:
btn.setBackgroundColor(Color.rgb(getColorByte(color1)[0],getColorByte(int color1)[1],getColorByte(int color1)[2]));
を私は白のボタンを取得します。
私の考えでは、問題は255 = FF!= -1です。あれは正しいですか? 整数をRGB値に分割するにはどうすればよいですか? (3バイト配列)。
ありがとうございました!
はFYI:私は、整数と背景色を変更することができることを知っているが、私はあなたの2番目の質問(intgerに戻し、配列の変換について1に答えるために
カラー配列を 'byte []'ではなく 'int []'として保存して、負の数を取得しないようにしてください。 –
ありがとう、別の質問:どのように[0,6、-1]バイト配列から-16775425 Int値に戻すことができますか?ありがとう!! –