안드로이드에서 배경색을 # AF 000000 ( AA RRGGBB)으로 설정했다고 가정 합니다. 175가 될 10 진수 (0-255) 의 알파 채널 ( AA ) 값을 원합니다 .
프로그래밍 방식으로 수행하는 방법은 무엇입니까?
다음은 Android 전용 getAlpha()
방법을 사용하지 않는 순수 Java 솔루션입니다 .
이 값이 String
또는에 저장되어 int
있습니까? 에있는 경우 String
먼저 #
문자를 제거한 다음 다음으로 변환하십시오 int
.
String hexString = "#05000000";
int color = Integer.parseInt(hexString.replaceAll("#", ""), 16);
그런 다음 약간의 조작이 필요합니다. 이 16 진수 색상 표현은 (ARGB 모드에서) 값이 #AARRGGBB임을 의미합니다. 이는 알파 1을 포함하여 각 채널에 대해 2 바이트입니다. 알파 채널 ( AA
16 진수 값 의 일부) 을 얻으려면 "오른쪽으로 6 바이트를 밀어 넣어야합니다" (Java는 Big Endian 언어 임) #000000AA
. 각 바이트는 8 비트로 구성되어 있으므로 알파 값 비트를 "오른쪽으로" "밀어 넣어야" 합니다 .6 * 8 = 24
int alpha = color >> 24;
이 프로세스를 비트 이동 이라고 합니다. 가장 오른쪽의 RGB 값은 모두 버려지고 int
0에서 255 사이의 10 진수 값으로 에 알파 값이 저장됩니다 .
편집 : getAlpha ()에서 반환 된 알파 값이 이미있는 경우 항상 255를 곱하고 내릴 수 있습니다.
int alpha = Math.floor(myView.getAlpha() * 255);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다