getResources().getColor()가 더 이상 사용되지 않습니다.
사용:buildToolsVersion "22.0.1"
,targetSdkVersion 22
나의 gradle 파일에.
나는 유용한 것을 발견했습니다.getResources().getColor(R.color.color_name)
사용되지 않습니다.
대신 무엇을 사용해야 합니까?
가장 좋은 방법은 다음과 같습니다.
ContextCompat.getColor(context, R.color.color_name)
예:
yourView.setBackgroundColor(ContextCompat.getColor(applicationContext,
R.color.colorAccent))
이렇게 하면 Mashmallow 두 매개 변수 방법 또는 Marshmallow 이전 방법을 적절하게 선택할 수 있습니다.
음, 그것은 안드로이드 M에서 더 이상 사용되지 않기 때문에 안드로이드 M 이하에 대해서는 예외를 만들어야 합니다.현재 테마를 추가합니다.getColor
기능.다음을 통해 현재 테마를 얻을 수 있습니다.getTheme()
.
이렇게 하면 단편적으로 속임수를 쓸 수 있습니다. 대체할 수 있습니다.getActivity()
와 함께getBaseContext()
,yourContext
현재 컨텍스트를 유지하는 등
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white, getActivity().getTheme()));
}else {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white));
}
*p.s : M에서는 색상이 사용되지 않지만 L에서는 그리기 가능한 색상이 사용되지 않습니다.
Support V4 라이브러리의 일부인 ContextCompat.getColor()를 사용해야 합니다(그러면 이전의 모든 API에서 작동합니다).
ContextCompat.getColor(context, R.color.my_color)
문서 "M부터 시작하여 반환된 색상은 지정된 컨텍스트의 테마에 맞게 스타일이 지정됩니다."에서 지정한 대로, 걱정할 필요가 없습니다.
앱 build.gradle 내의 종속성 배열에 다음을 추가하여 지원 V4 라이브러리를 추가할 수 있습니다.
compile 'com.android.support:support-v4:23.0.1'
유용한 getResources().getColor(R.color.color_name)가 더 이상 사용되지 않습니다.
설명서에 따르면 API Level 21에서는 사용되지 않습니다.
M 개발자 미리보기에서는 더 이상 사용되지 않습니다.그러나 대체 방법(2-모수)getColor()
색상 리소스 ID와 a를 가져갑니다.Resources.Theme
개체)는 M 개발자 미리 보기에서만 사용할 수 있습니다.
따라서 현재 단일 매개 변수를 계속 사용합니다.getColor()
방법.올해 말에, 2-매개변수를 사용하는 것을 고려해 보십시오.getColor()
Android M 장치의 메서드, 사용되지 않는 단일 매개 변수로 되돌아갑니다.getColor()
이전 장치의 메서드입니다.
언급URL : https://stackoverflow.com/questions/31842983/getresources-getcolor-is-deprecated
'source' 카테고리의 다른 글
Git는 "경고: 알려진 호스트 목록에 영구적으로 추가되었습니다"라고 말합니다. (0) | 2023.06.21 |
---|---|
성능 테스트를 위해 스칼라와 함께 1억 개의 레코드를 MongoDB에 로드하는 방법은 무엇입니까? (0) | 2023.06.21 |
UIButton: 선택된 강조 표시된 상태에 대한 이미지 설정 (0) | 2023.06.11 |
Angular 2 호출 집합Interval() 정의되지 않은 서비스 양식 종속성 주입 (0) | 2023.06.11 |
1064. SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 'OUTPUT' 근처에서 사용할 올바른 구문을 확인하십시오. (0) | 2023.06.11 |