1。原則
主な方法は、tohexstring(intタイプを16進ストリングに変換する)とparseint(文字列をintに解析する)と呼ばれます。
2。コード
public static void main(string [] args){string hexstring = colortohexvalue(color.red); System.out.println( "hexstring:" + hexstring);色の色= fromstrtoargb(hexstring); System.out.println( "色に変換されたヘックスストリングのargb値:("+string.valueof(color.getalpha())+"、"+string.valueof(color.getred())+"+string.valueof(color.getgreen())+"、 "+string.valueof(color.getblue()+"); } private static string colortohexvalue(color color){return inttohexvalue(color.getalpha()) + inttohexvalue(color.getred()) + inttohexvalue(color.getGreen()))) } private static string inttohexvalue(int number){string result = integer.tohexstring(number&0xff); while(result.length()<2){result = "0" + result; } return result.touppercase(); } private static color fromstrtoargb(string str){string str1 = str.substring(0、2); string str2 = str.substring(2、4); string str3 = str.substring(4、6); string str4 = str.substring(6、8); int alpha = integer.parseint(str1、16); int red = integer.parseint(str2、16); int green = integer.parseint(str3、16); int blue = integer.parseint(str4、16);色の色=新しい色(赤、緑、青、アルファ);色を返します。 }3。効果
4。キーポイント
4.1 TohexString:JDKは、整数を16進列に変換すると言うことはありません。
4.2番号&0xff:intタイプデータの最後の8ビットのみが有効であり、高24ビットが無効であることを確認してください(すべて0)、intタイプは32ビットですが、最大色の値は255で、ニーズを満たすために8ビットのみが必要です。したがって、着信データが法的色の値であることを確認する必要があり、255を超えるデータを255として扱う必要があります。現時点では、2つの方法があります。 1つ目はこの記事の処理方法であり、2つ目は判断を追加することです。データが255を超える場合、それは255に等しく、それが少ない場合、処理されません。それに比べて、このペーパーの処理方法は、コードが最小であり、効率的な処理方法です。
4.3&:bitwise "および"操作。バイナリコードが両方の場合、結果は1です。それ以外の場合は0です。
4.4 0xff:0xとは、16進数の後に続くことを意味します。 Fは15で、2に変換されると1111、2つのFSは1111 1111(小数で255)、最初の24ビットは0です。現時点では、操作を実行すると、範囲0〜255のINT値のみが有効な色値であることが保証されます。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。