我想将动作栏的背景设置为渐变色。为此,我有一个Colorpicker,我可以选择开始和结束颜色。我想使用这些值来设置背景。
但是我不知道int值应采用哪种格式来设置可绘制到操作栏的渐变。起初我认为格式应该类似于#FFFFFFF
,就像我在那种情况下使用的那样:例如actionbar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(hexFarbe)));
。
我试过这个:
if (x > 10 && x < 138 && y > 316 && y < 356){
endfarbe_zuletzt_gewählt_global = false;
startfarbe_zuletzt_gewählt_global = true;
String hexColor = String.format("#%06X", (0xFFFFFF & startFarbe));
Log.d("startfarbe", "startfarbe " + endFarbe + "|" + hexColor);
startFarbe_global = hexColor;
mListener.colorChanged("startFarbe", startFarbe);
}
这里我想设置操作栏颜色:
if(!(startFarbe.equalsIgnoreCase(""))&&(!(endfarbe.equalsIgnoreCase("")))){
GradientDrawable gd = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM,
// new int[] {0xFF616261,0xFF131313});
new int[] {Integer.parseInt(startFarbe), Integer.parseInt(endfarbe)});
actionbar.setBackgroundDrawable(gd);
}
但后来我收到以下logcat错误:
Caused by: java.lang.NumberFormatException: Invalid int: "#0000FF"
答案 0 :(得分:3)
由于NumberFormatException
方法无法处理您提供的字符串中的#
,因此您获得parseInt()
。
使用颜色字符串时,请尝试Integer.parseInt()
类&#39;而不是Color
。方法:
public static int parseColor (String colorString)
支持的格式为:#RRGGBB #AARRGGBB&#39; red&#39;,&#39; blue&#39;,&#39; green&#39;, &#39; black&#39;,&#39; white&#39;,&#39; grey&#39;,&#39; cyan&#39;,&#39; magenta&#39;,&#39; yellow& #39;,&#39; lightgray&#39;, &#39;深灰&#39;