16 진수 색상 값 (#ffffff)을 정수 값으로 변환
서버에서 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.
Integer.parseInt(myString.replaceFirst("#", ""), 16)
대답은 정말 간단합니다 .Android에서 16 진수 색상을 int로 변환하려면 다음과 같이 Android Color 클래스를 사용하십시오.
이것은 밝은 회색 색상입니다
Color.parseColor("#a8a8a8");
그게 다이고 결과를 얻을 수 있습니다.
나는 내가 어떤 색을 발견 한 것과 같은 문제가 있는데 그것을 #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_C)을 변경하는 것이 었습니다.
이것을 시도하고 리소스에 드로어 블을 만드십시오 ...
<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) 포함
행운을 빕니다
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);
참고 URL : https://stackoverflow.com/questions/6935057/convert-hex-color-value-ffffff-to-integer-value
'Programing' 카테고리의 다른 글
| android.jar에 소스를 첨부하는 방법 (0) | 2020.10.23 |
|---|---|
| Android 애플리케이션 용 QR 코드를 생성하는 방법은 무엇입니까? (0) | 2020.10.23 |
| 입력 유형 =“number”에 대한 onchange 이벤트 (0) | 2020.10.23 |
| Swift에서 관련 값을 무시하여 enum을 관련 값과 비교하는 방법은 무엇입니까? (0) | 2020.10.22 |
| Redis 관리 패널 (0) | 2020.10.22 |