programing

16진수 색상 값(#fffff )을 정수 값으로 변환합니다.

prostudy 2022. 10. 13. 23:32
반응형

16진수 색상 값(#fffff )을 정수 값으로 변환합니다.

서버로부터 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

Android SDK를 사용하고 있습니다.setBackgroundColor(int color)이 함수는 짐작하신 바와 같이 정수 색상 값을 취합니다.

이것은 이 질문의 반대입니다.Android에서 색 정수를 16진수 문자열로 변환하는 방법

진짜 답은 다음과 같습니다.

Color.parseColor(myPassedColor)Android에서는myPassedColor가 되다hex와 같은 가치관을 가지다#000또는#000000또는#00000000.

단, 이 함수는 다음과 같은 단축 16진수 값을 지원하지 않습니다.#000.

답은 매우 간단합니다.안드로이드에서 16진수 색상을 int로 변환하고 싶다면 아래 예시와 같이 안드로이드 컬러 클래스를 사용하십시오.

이것은 연한 회색용입니다.

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_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);

값을 static const로 전달할 수 있는 경우 16진수 값을 Android(android.graphics)로 변환할 수 있습니다.Color)를 사용하여 이 온라인 컨버터를 사용하여 color reference를 const에 입력합니다.즉, color converter는 이 color #EE5670 = 0xFFEEE5670의 값을 지정합니다.

static const Color redColor = const Color(0xFFEE5670);

https://convertingcolors.com/hex-color-EE5670.html?search=#EE5670

문자열에서 공유 기본 설정 색상 코드를 가져온 다음 정수로 변환하고 레이아웃 배경 색상을 추가합니다.

    sharedPreferences = getSharedPreferences(mypref, Context.MODE_PRIVATE);
    String sw=sharedPreferences.getString(name, "");
    relativeLayout.setBackgroundColor(Color.parseColor(sw));

이 작업을 수행하여 리소스에서 그리기 가능...

<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);

컬러로..."#FFFF"

색상이 투명하면...set Alpha

mView1.setAlpha(x); 플로트 9f)x 로 0-1 Ej (0.9f)

행운을 빌어요

언급URL : https://stackoverflow.com/questions/6935057/convert-hex-color-value-ffffff-to-integer-value

반응형