Преобразование значения шестнадцатеричного цвета (#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)
, которая принимает, как вы могли догадаться, целочисленное значение цвета.
Это OPPOSITE этого вопроса: Как преобразовать целое число цвета в шестнадцатеричную строку в Android?
Ответы
Ответ 1
Реальный ответ заключается в использовании:
Color.parseColor(myPassedColor)
в Android, myPassedColor
является значением hex
, например #000
или #000000
или #00000000
.
Однако эта функция не поддерживает строчные шестнадцатеричные значения, такие как #000
.
Ответ 2
Integer.parseInt(myString.replaceFirst("#", ""), 16)
Ответ 3
У меня та же проблема, что я нашел цвет в форме #AAAAAA
, и я хочу преобразовать его в форму, которую может использовать андроид.
Я обнаружил, что вы можете просто использовать 0xFFAAAAAA
, чтобы андроид мог автоматически указывать цвет. Обратите внимание, что первая FF
сообщает значение alpha
.
Надеюсь, что это поможет.
Ответ 4
У меня была та же проблема. Таким образом я смог решить это.
Как сказал CQM, использование Color.parseColor() является хорошим решением этой проблемы.
Вот код, который я использовал:
this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));
В этом случае моя цель состояла в том, чтобы изменить цвет текста Button (Button_C), когда я изменяю выбор цвета из своих настроек (color_prefs).
Ответ 5
Реальный ответ прост и прост.
String white = "#ffffff";
int whiteInt = Color.parseColor(white);
Ответ 6
Ответ - это действительно простые ребята, в андроиде, если вы хотите преобразовать шестнадцатеричный цвет в int, просто используйте класс android Цвет, пример показан ниже
это для светло-серого цвета
Color.parseColor("#a8a8a8");
Вот оно, и вы получите свой результат.
Ответ 7
Попробуйте это, создайте в своем ресурсе ресурс...
<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.9f)
Удача