서버에서 16 진수 색상 값을 받고 있습니다 (이 형식으로 #xxxxxx
, 예 #000000
를 들어 검은 색).
이것을 정수 값으로 어떻게 변환합니까?
나는 Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))
훨씬 더 현명한 0x000000
결과 를 얻으 려고 노력 했지만 이것은 int
여기에 다른 제안 으로 해석 되지 않았습니다 .
오류가 발생합니다. 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
나는 그들의 setBackgroundColor(int color)
기능을 위해 Android SDK를 사용하고 있는데, 이것은 당신이 짐작했듯이 정수 색상 값을 취합니다.
이것은이 질문의 반대입니다 : Android에서 색상 정수를 16 진수 문자열로 변환하는 방법?
답변
진짜 대답은 다음을 사용하는 것입니다.
Color.parseColor(myPassedColor)
안드로이드, myPassedColor
있는 hex
같은 값 #000
이나 #000000
또는 #00000000
.
그러나,이 함수는 속기 16 진수 값을 지원하지 않는 등을 #000
.
답변
대답은 정말 간단합니다 .Android에서 16 진수 색상을 int로 변환하려면 다음과 같이 Android Color 클래스를 사용하십시오.
이것은 밝은 회색 색상입니다
Color.parseColor("#a8a8a8");
그게 다이고 결과를 얻을 수 있습니다.
답변
Integer.parseInt(myString.replaceFirst("#", ""), 16)
답변
나는 내가 어떤 색을 발견 한 것과 같은 문제가 있는데 그것을 #AAAAAA
안드로이드가 사용할 수있는 형태로 변환하고 싶다. 나는 당신 0xFFAAAAAA
이 안드로이드가 자동으로 색상을 알 수 있도록 사용할 수 있음을 발견했습니다 . 첫 번째 FF
는 alpha
가치를 말하는 것 입니다. 도움이되기를 바랍니다.
답변
진짜 대답은 이것이 가장 간단하고 쉽습니다 ….
String white = "#ffffff";
int whiteInt = Color.parseColor(white);
답변
나는 같은 문제에 직면했다. 이 방법으로 해결할 수있었습니다. CQM이 말했듯이 Color.parseColor ()를 사용하는 것이이 문제에 대한 좋은 해결책입니다.
내가 사용한 코드는 다음과 같습니다.
this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));
이 경우 내 목표는 내 환경 설정 (color_prefs)에서 색상 선택을 변경할 때 Button의 텍스트 색상 (Button_C)을 변경하는 것이 었습니다.
답변
CQM 의 답변 과 다른 질문에 대한 ovokerie-ogbeta 의 답변을 기반 으로이 솔루션을 찾았 습니다.
if (colorAsString.length() == 4) { // #XXX
colorAsString = colorAsString.replaceAll("#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])", "#$1$1$2$2$3$3");
}
int color = Color.parseColor(colorAsString);