Android的String Formater中的x和X格式说明符有什么区别?

时间:2019-07-26 13:19:08

标签: android colors

%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中的内容-作为正确的颜色

0 个答案:

没有答案