将十六进制颜色值(#ffffff)转换为整数值

时间:2011-08-04 01:00:45

标签: java android colors numberformatexception

我从服务器接收十六进制颜色值(在此表单中为#xxxxxx,示例为#000000为黑色)

如何将此转换为整数值?

我尝试Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))来获得更多的十六进制0x000000结果,但这里没有将int解释为其他任何建议吗?

我收到错误:08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer

我正在使用Android SDK作为他们的setBackgroundColor(int color)函数,正如您可能已经猜到的那样,它需要一个整数颜色值。

这是此问题的对立面:How to convert a color integer to a hex String in Android?

10 个答案:

答案 0 :(得分:160)

真正的答案是使用:

Android中的

Color.parseColor(myPassedColor)myPassedColorhex值,如#000#000000#00000000

但是,此功能does not support shorthand hex values,例如#000

答案 1 :(得分:13)

Integer.parseInt(myString.replaceFirst("#", ""), 16) 

答案 2 :(得分:11)

答案是非常简单的家伙,在android中如果要将十六进制颜色转换为int,只需使用android 颜色类,示例如下所示

这是浅灰色的

Color.parseColor("#a8a8a8");

多数民众赞成,你会得到你的结果。

答案 3 :(得分:6)

我遇到同样的问题,我发现#AAAAAA形式的颜色,我希望将其转换为Android可以使用的形式。 我发现你可以使用0xFFAAAAAA以便android可以自动告诉颜色。请注意,第一个FF告诉alpha值。 希望它有所帮助

答案 4 :(得分:2)

我遇到了同样的问题。这样我就能解决它。 正如CQM所说,使用Color.parseColor()是解决这个问题的好方法。

以下是我使用的代码:

this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));

在这种情况下,当我从Preferences(color_prefs)更改颜色选择时,我的目标是更改Button的文本颜色(Button_C)。

答案 5 :(得分:2)

真正的答案是最简单,最简单的......

String white = "#ffffff";
int whiteInt = Color.parseColor(white);

答案 6 :(得分:0)

试试这个,在你的资源中创建drawable ......

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="@color/white"/>
    <size android:height="20dp"
        android:width="20dp"/>
</shape>

然后使用......

 Drawable mDrawable = getActivity().getResources().getDrawable(R.drawable.bg_rectangle_multicolor);
mDrawable.setColorFilter(Color.parseColor(color), PorterDuff.Mode.SRC_IN);
mView1.setBackground(mDrawable);

带颜色......&#34; #FFFFFF&#34;

如果颜色是透明的,请使用... setAlpha

mView1.setAlpha(x); x浮点数0-1 Ej(0.9f)

祝你好运

答案 7 :(得分:0)

基于CQManswerovokerie-ogbetaanswer to another question,我提出了以下解决方案:

Prawn

答案 8 :(得分:0)

获取字符串中的共享首选项颜色代码,然后转换为整数并添加布局背景颜色:

    sharedPreferences = getSharedPreferences(mypref, Context.MODE_PRIVATE);
    String sw=sharedPreferences.getString(name, "");
    relativeLayout.setBackgroundColor(Color.parseColor(sw));

答案 9 :(得分:0)

如果您可以将值作为静态常量传递,则可以使用此在线转换器将十六进制值转换为 Android (android.graphics.Color) 并将颜色参考放入常量中,即:颜色转换器给我这个值对于这种颜色#EE5670 = 0xFFEE5670。

static const Color redColor = const Color(0xFFEE5670);

https://convertingcolors.com/hex-color-EE5670.html?search=#EE5670