%x
格式化程序的一个应用程序是输出一种颜色的十六进制等效项,该颜色以其他方式使用单个int(例如Android Color lib中的常见颜色)或(a)rgb(其中的参数是整数)。
因此,我使用以下参数形成了一种颜色:
int a=10, r=245, g=2, b=255;
从中获取颜色的android方法如下:
int color = Color.argb(a,r,g,b);
现在,当我尝试以十六进制形式输出此颜色时(例如,可以将颜色代码粘贴到Web颜色生成器中,然后查看结果是什么样的),我使用了以下方法(获得{{3 }})
方法1
String hexColor = String.format("#%08X", color); //-> #F60BFE01
渲染此方法时,对这种方法的结果不满意,然后我也尝试了...
方法2
String altHexColor = String.format("#%02x%02x%02x", r, g, b); //->#f502ff
我发现使用方法1-获得的颜色仅使用%X
说明符,与使用方法2-仅使用{{ 1}}指定符。我没想到这一点,所以我想知道,这种行为是标准的吗?还是我还没有学过的%x
和%x
格式说明符?
另外,请注意,当我第一次尝试方法1%-)时,我开始期望(寻找(?))altHexColor中的内容-作为正确的颜色