2

特定の TextView について、アルファ、赤、緑、青の値 (0-255) を取得する方法は?

TextView.SetBackgroundColor(Color.argb(a_int, r_int, g_int, b_int)); を設定する方法を知っています。

しかし、どうやって手に入れるのですか?

どうもありがとう

4

1 に答える 1

9

使用ColorDrawable:

ColorDrawable cd = (ColorDrawable) textView.getBackground();
int color = cd.getColor();
int alpha = cd.getAlpha();
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);

公式カラードキュメント

Color クラスは、色の int を作成および変換するためのメソッドを定義します。

色はパックされた int として表され、4 バイト (アルファ、赤、緑、青) で構成されます。

値はあらかじめ乗算されていません。つまり、透明度はカラー コンポーネントではなく、アルファ コンポーネントのみに保存されます。

コンポーネントは次のように格納されます (alpha << 24) | (赤 << 16) | (緑 << 8) | 青い。

各コンポーネントの範囲は 0 ~ 255 で、0 はそのコンポーネントの寄与がないことを意味し、255 は 100% の寄与を意味します。

したがって、不透明な黒は 0xFF000000 (100% 不透明ですが、赤、緑、または青からの影響はありません) になり、不透明な白は 0xFFFFFFFF になります。

参照

于 2014-07-24T18:54:21.230 に答える