Programing

새로운 색상 드로어 블 만들기

lottogame 2020. 11. 10. 07:43
반응형

새로운 색상 드로어 블 만들기


새로운 색상 드로어 블을 만들 수 있도록 16 진수 값을 int로 변환하려고합니다. 이것이 가능한지 확실하지 않지만 문서 에 따르면 가능 합니다. 그것은 분명히 묻습니다

public ColorDrawable (int color)

API 레벨 1에 추가됨 지정된 색상으로 새 ColorDrawable을 만듭니다.

매개 변수 color 그릴 색상.

따라서 Invalid int : "FF6666"오류가 발생하기 때문에 코드가 작동하지 않습니다. 어떤 아이디어?

int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);

16 진수에 대해 이야기하고 있기 때문에 먼저 0x불투명도를 잊지 말아야합니다.

그래서 기본적으로 : 0xFFFF6666

ColorDrawable cd = new ColorDrawable(0xFFFF6666);

새 colors.xml 파일을 / res에 만들고 다음과 같이 색상을 정의 할 수도 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="mycolor">#FF6666</color>
</resources>

R.color.mycolor에 정의 된 색상을 가져옵니다.

getResources().getColor(R.color.mycolor)

ContextCompat와 함께 사용하고 색상을 다시 사용하려면 다음과 같이 할 수 있습니다.

ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.white));

이럴거야 ...

ColorDrawable cd = new ColorDrawable(0xffff6666);

참고 6 16 진수가 아니라 8 16 진수를 사용했습니다. 투명성더하는


나는 당신이 사용해야한다고 생각합니다 :

public static int parseColor (String colorString)

API 레벨 1에 추가됨 색상 문자열을 구문 분석하고 해당 color-int를 반환합니다. 문자열을 구문 분석 할 수없는 경우 IllegalArgumentException 예외가 발생합니다. 지원되는 형식은 다음과 같습니다. #RRGGBB #AARRGGBB 빨강, 파랑, 녹색, 검정, 흰색, 회색, 청록색, 자홍색, 노랑, 밝은 회색, 진회색, 회색, 밝은 회색, 진회색, 아쿠아, 자홍색, 라임, 적갈색, 네이비, 올리브, 보라색, 은색, 청록색


위의 조언을 따르면이 질문을 요약 할 수 있습니다.

  1. ColorDrawable colorDrawable = new ColorDrawable ( Color.parseColor ( "# ce9b2c"));`

  2. ColorDrawable colorDrawable = new ColorDrawable ( 0xFFCE9B2C ); 작동하지 않는 6 개의 16 진수가 아니라 8 개의 16 진수가 있습니다. 모든 경우

  3. ColorDrawable colorDrawable = new ColorDrawable (ContextCompat.getColor (mContext, R.color.default_color));

당신에게 선택!


이것이 내가 Hex 색상을 int로 변환하고 뷰의 배경에 적용한 방법입니다.

색상이 # 8080000이라고 가정 해 보겠습니다.

1) 16 진수에서 정수로 변환

int myColor = Color.parseColor("#808000");

2) 배경 설정

view.setBackgroundColor(context.getColor(myColor));

참고 URL : https://stackoverflow.com/questions/19407672/create-a-new-color-drawable

반응형