Programing

getResources (). getColor ()는 더 이상 사용되지 않습니다

lottogame 2020. 3. 3. 22:53
반응형

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

이것은 Marshmallow 2 매개 변수 방법 또는 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));
}

* ps : 색상은 M에서 더 이상 사용되지 않지만 drawable은 L에서 더 이상 사용되지 않습니다.


Support V4 Library의 일부인 ContextCompat.getColor ()를 사용해야합니다 (따라서 이전의 모든 API에서 작동 함).

ContextCompat.getColor(context, R.color.my_color)

설명서 "M에서 시작하여 반환되는 색상은 지정된 컨텍스트 테마에 따라 스타일이 지정됩니다."문서에 지정된대로 따라서 걱정할 필요가 없습니다.

앱 build.gradle 내의 dependencies 배열에 다음을 추가하여 Support V4 라이브러리를 추가 할 수 있습니다.

compile 'com.android.support:support-v4:23.0.1'

유용한 getResources (). getColor (R.color.color_name)은 더 이상 사용되지 않습니다.

문서 에 따르면 API 레벨 21에서는 더 이상 사용되지 않습니다 .

그것은 되고 는 M 개발자 미리보기에서 더 이상 사용되지. 그러나 대체 방법 ( getColor()색상 리소스 ID와 Resources.Theme개체를 사용 하는 2 개의 매개 변수 )은 M Developer Preview에서만 사용할 수 있습니다.

따라서 현재 단일 매개 변수 getColor()방법을 계속 사용하십시오 . 올해 후반 getColor()에는 Android M 기기에서 2- 파라미터 getColor()방식을 사용하는 것이 좋습니다. 구형 기기 에서는 더 이상 사용되지 않는 단일 파라미터 방식으로 돌아갑니다 .

참고 URL : https://stackoverflow.com/questions/31842983/getresources-getcolor-is-deprecated



반응형