Android는 값으로 색상을 얻습니다.
리소스에 색상을 정의한 경우
<resources>
<color name="someColor">#123456</color>
</resources>
ID로 색상을 선택할 수 있습니다.
view.setTextColor(R.color.someColor);
colors.xml에서 색상 값을 많이 사용합니까?
같은 것
colorStr = getColor(R.color.someColor);
// -> colorStr = "#123456"
어디에든지 예를 들어 줄 수 있습니까?
감사합니다
이것이 당신의 대답입니다
colorStr=getResources().getString(R.color.someColor);
당신은 얻을 것이다
colorStr = "#123456"
쉬운 카피 파스타를 위해 :
"#" + Integer.toHexString(ContextCompat.getColor(getActivity(), R.color.some_color));
또는 투명도없이 원하는 경우 :
"#" + Integer.toHexString(ContextCompat.getColor(getActivity(), R.color.some_color) & 0x00ffffff);
위에 답변은 업데이트되지 않았습니다.
시도 시도하십시오
String colorHex = "#" + Integer.toHexString(ContextCompat.getColor(getActivity(), R.color.dark_sky_blue) & 0x00ffffff);
원인 getResources().getColor
은 api> 23이 필요합니다. 따라서 이것이 더 좋습니다. 간단한 복사 및 넣기를
Integer.toHexString( ContextCompat.getColor( getContext(), R.color.someColor ) );
또는 투명도없이 원하는 경우 :`
Integer.toHexString( ContextCompat.getColor( getContext(), R.color.someColor ) & 0x00ffffff );
Integer.toHexString()
16 진수 문자열에 선행 0있는 경우이 여기에서 모든 솔루션은 브레이크를 사용 합니다. 같은 색상 #0affff
은 #affff
. 대신 사용 :
String.format("#%06x", ContextCompat.getColor(this, R.color.your_color) & 0xffffff)
또는 알파 포함 :
String.format("#%08x", ContextCompat.getColor(this, R.color.your_color) & 0xffffffff)
21 이상의 API의 경우 다음을 사용할 수 있습니다.
getString(R.color.color_name);
이것은 패키지 형식으로 색상을 반환합니다. 정수 형식의 색상으로 변환 된 비용 (때때는 정수만 변환 됨) 다음을 수행하십시오.
Color.parseColor(getString(R.color.color_name));
color.xml 파일에 정의 된 색상에 해당하는 정수를 반환합니다.
나는 표준 기능이 있다고 생각합니다. 그러나 반환 값 getColor()
을 16 진수로 바꾸고 16 진수 값을 바꾸고 변경할 수 있습니다 .
16 진수 123456 = 정수 1193046;
이것이 내가 한 방법입니다.
String color = "#" + Integer.toHexString(ContextCompat.getColor
(getApplicationContext(), R.color.yourColor) & 0x00ffffff);
오류가 발생하면 @SuppressLint ( "ResourceType")을 추가합니다. 우는 소리처럼.
private String formatUsernameAction(UserInfo userInfo, String action) {
String username = userInfo.getUsername();
@SuppressLint("ResourceType") String usernameColor = getContext().getResources().getString(R.color.background_button);
return "<font color=\""+usernameColor+"\">" + username
+ "</font> <font color=\"#787f83\">" + action.toLowerCase() + "</font>";
}
당신이 사용하지 않는 경우 ContextCompat
또는 SuppressLint
추가 string
하여 아래 자원 권리를 color
.
대신에
<color name="text_color">#FFFFFF</color>
사용하다
<color name="text_color">#FFFFFF</color>
<string name="text_color_string">#FFFFFF</string>
코드는 더 반복되지만 훨씬 더 깔끔합니다. 게다가 string
변경 후 업데이트하는 것을 잊는 color
것은 바로 옆에 있기 때문에 거의 불가능합니다.
참고 URL : https://stackoverflow.com/questions/5026995/android-get-color-as-string-value
'IT' 카테고리의 다른 글
제거 PHP에서 후행 슬래시 제거 (0) | 2020.09.17 |
---|---|
jquery에서 특정 속성 값을 가진 모든 요소 찾기 (0) | 2020.09.17 |
LINQ를 통해 트리를 평면화하는 방법은 무엇입니까? (0) | 2020.09.17 |
Java 8 Streams FlatMap 메서드 예제 (0) | 2020.09.17 |
HTML 테이블에서 열을 숨기는 방법은 무엇입니까? (0) | 2020.09.17 |