将背景设置为渐变颜色

时间:2015-05-21 16:00:05

标签: android

我想将动作栏的背景设置为渐变色。为此,我有一个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"

1 个答案:

答案 0 :(得分:3)

由于NumberFormatException方法无法处理您提供的字符串中的#,因此您获得parseInt()

使用颜色字符串时,请尝试Integer.parseInt()类&#39;而不是Color。方法:

public static int parseColor (String colorString)

来自Android documentation

  

支持的格式为:#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;