我从服务器接收十六进制颜色值(在此表单中为#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?
答案 0 :(得分:160)
真正的答案是使用:
Android中的 Color.parseColor(myPassedColor)
,myPassedColor
为hex
值,如#000
或#000000
或#00000000
。
但是,此功能does not support shorthand hex values,例如#000
。
答案 1 :(得分:13)
Integer.parseInt(myString.replaceFirst("#", ""), 16)
答案 2 :(得分:11)
这是浅灰色的
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)
基于CQM的answer和ovokerie-ogbeta的answer 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