Преобразование шестнадцатеричного значения цвета (#ffffff) в целочисленное значение


Я получаю шестнадцатеричные значения цвета с сервера (в этой форме, #xxxxxx , например #000000 для черных)

как преобразовать это в целочисленное значение?

Я пробовал делать Integer.valueOf("0x" + passedColor.substring(1, passedColor.length())) чтобы получить еще более hextastic 0x000000 результат, но это не intepreted как int здесь какие-то другие предложения?

Я получаю сообщение об ошибке: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer

Я использую Android SDK для их setBackgroundColor(int color) функция, которая принимает-как вы могли догадаться-an целочисленное значение цвета.

это противоположность этого вопроса: Как преобразовать цветовое целое число в шестнадцатеричную строку в Android?

7 67

7 ответов:

реальный ответ заключается в использовании:

Color.parseColor(myPassedColor) в Android myPassedColor являясь hex значение #000 или #000000 или #00000000.

функция не поддерживает стенографические шестнадцатеричные значения например #000.
Integer.parseInt(myString.replaceFirst("#", ""), 16) 

ответ очень прост, ребята, в android Если вы хотите конвертировать шестнадцатеричный цвет в int, просто используйте android цвета класс, пример показан ниже

это для светло-серого цвета

Color.parseColor("#a8a8a8");

вот и все, и вы получите свой результат.

у меня та же проблема, что я нашел какой-то цвет в виде #AAAAAA и я хочу перевести это в форму, которую может использовать android. Я обнаружил, что вы можете просто использовать 0xFFAAAAAA Так что Android может автоматически сказать цвет. Обратите внимание на первый FF говорит alpha значение. Надеюсь, это поможет

я столкнулся с той же проблемой. Таким образом, я смог решить ее. Как сказал CQM, используя цвет.parseColor() является хорошим решением этой проблемы.

вот код, который я использую:

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

в этом случае моей целью было изменить цвет текста кнопки (Button_C), когда я изменяю выбор цвета из моих предпочтений (color_prefs).

реальный ответ-Это самый простой и легкий ....

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

попробуйте это, создать 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);

цвета... "#FFFFFF"

Если цвет прозрачный использовать... setAlpha

mView1.setAlpha(x); С X float 0-1 Ej (0.9 f)

Удачи