

hex文字列(RRGGBB)からARGBのint値を作る
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
やりたいこと
"545455" みたいな6桁のhex文字列(RRGGBB)を、Javaでintのカラーコード(ARGB)に変換したい。
手順
1. hex文字列をintに変換する
int rgb = Integer.parseInt("545455", 16);// => 0x00545455 (5526613)parseInt に基数16を渡すだけで、6桁のhex文字列は24bitのRGB値になる。
2. アルファ値を上位バイトに足す
RGBだけだとアルファ(不透明度)の情報がないので、ARGBにするには上位8bitにアルファ値を入れる必要がある。完全不透明なら 0xFF。
int argb = rgb | 0xFF000000;// => 0xFF545455 (-11250603 as signed int)まとめると
// hex文字列 → RGBint rgb = Integer.parseInt(hexString, 16);
// RGB → ARGB(不透明)int argb = rgb | 0xFF000000;hex文字列からカラーコードを組み立てる系のコードでは、地味によく出てくるパターン。
補足: アルファ値を足すのに + を使ってるコードも見かけるが(Integer.parseInt(hexString, 16) + 0xFF000000)、rgb が 0x00FFFFFF 以下なら | と結果は同じになる。ただしビットフィールドの合成は意図的にも安全性的にも | の方が適切。