特定の TextView について、アルファ、赤、緑、青の値 (0-255) を取得する方法は?
TextView.SetBackgroundColor(Color.argb(a_int, r_int, g_int, b_int)); を設定する方法を知っています。
しかし、どうやって手に入れるのですか?
どうもありがとう
特定の TextView について、アルファ、赤、緑、青の値 (0-255) を取得する方法は?
TextView.SetBackgroundColor(Color.argb(a_int, r_int, g_int, b_int)); を設定する方法を知っています。
しかし、どうやって手に入れるのですか?
どうもありがとう
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 になります。