バーの色を分割するために色の静的配列を使用する単純な棒グラフ アプリケーションに取り組んでいます。バーを通常どおりに描画するか、わずかに透明にする機能が欲しいです。
色の整数をプログラムで調整して、わずかに透明にする方法はありますか? または、各色の透明バージョンを静的に定義し、透明が必要なときはいつでもこれらのバージョンを使用するように切り替える必要がありますか?
バーの色を分割するために色の静的配列を使用する単純な棒グラフ アプリケーションに取り組んでいます。バーを通常どおりに描画するか、わずかに透明にする機能が欲しいです。
色の整数をプログラムで調整して、わずかに透明にする方法はありますか? または、各色の透明バージョンを静的に定義し、透明が必要なときはいつでもこれらのバージョンを使用するように切り替える必要がありますか?
サポート ライブラリを使用している場合は、次を使用できます。
ColorUtils.setAlphaComponent(int color, int alpha);
サポート ライブラリを使用していない場合、そのソース コードから取得した 1 行のソリューションは次のとおりです。
int res = (color & 0x00ffffff) | (alpha << 24);
確かに...色を見て、関数があります:
static int argb(int alpha, int red, int green, int blue)
アルファ、赤、緑、青のコンポーネントから color-int を返します。
したがって、RGB 値は静的である可能性があり、アルファ値を上げて新しい透明バージョンの色を取得するだけです。
次のコードを試してください
int color = (int)Long.parseLong(your_color, 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;
カラーコードにアルファがある場合
int alpha= (color >> 24) & 0xFF;
一番上の答えから、これを行う方法を作成しました:
private Android.Graphics.Color AddTransparencyToColour(Android.Graphics.Color color, int transparancy)
{
return Android.Graphics.Color.Argb(transparancy, color.R, color.G, color.B);
}
これは、次のような拡張メソッドに変更できることにも注意してください。
public static ColorExtensions
{
public static Android.Graphics.Color AddTransparency(this Android.Graphics.Color color, int transparancy)
{
return Android.Graphics.Color.Argb(transparancy, color.R, color.G, color.B);
}
}
アルファ値に関しては、MSDN Color.FromArgbから:
備考
不透明な色を作成するには、アルファを 255 に設定します。半透明の色を作成するには、アルファを 1 ~ 254 の任意の値に設定します。