2015-05-21 2 views
0

Я хочу установить фон моей панели действий в градиентный цвет. Для этого у меня есть 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); 
     } 

Здесь я хочу, чтобы установить цвет ActionBar:

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

Android использует ARGB, вы можете попробовать создать цвет как " #AARRGGBB» –

ответ

3

You получают NumberFormatException как # в пределах строки, которую вы обеспечиваете g не может обрабатываться методом parseInt().

При работе с цветом строки, вместо Integer.parseInt() попробовать метод Color класс:

public static int parseColor (String colorString) 

Из Android documentation:

Supported formats are: #RRGGBB #AARRGGBB 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow', 'lightgray', 'darkgray'

Смежные вопросы