Android프로그래밍

[Android] getResources().getColor() 메소드 deprecated 되었는데 대체방법은?

getResources().getColor(int id) 메서드는 API 23(Android 6.0)부터 deprecated되었다. 대신, 색상을 가져올 때 ContextCompat.getColor(Context, int) 메서드를 사용하는 것이 권장한다.


대체 방법

getResources().getColor()를 대체하는 코드는 다음과 같습니다:

Deprecated 코드:

int color = getResources().getColor(R.color.my_color); // Deprecated


대체 코드:

int color = ContextCompat.getColor(context, R.color.my_color);

예시

  1. Activity에서 사용:

int color = ContextCompat.getColor(this, R.color.my_color);


  1. Fragment에서 사용:

int color = ContextCompat.getColor(requireContext(), R.color.my_color);


  1. View에서 사용:
int color = ContextCompat.getColor(getContext(), R.color.my_color);


XML에서 색상 동적으로 변경 예시

배경색 변경:

View view = findViewById(R.id.my_view); view.setBackgroundColor(ContextCompat.getColor(this, R.color.my_color));


텍스트 색상 변경:

TextView textView = findViewById(R.id.my_text_view); textView.setTextColor(ContextCompat.getColor(this, R.color.my_color));

이 방법은 Android 23(API 레벨 23) 이상에서도 호환 가능하며, ContextCompat 클래스는 Jetpack의 일부로 지속적으로 업데이트되고 있다.

error: Content is protected !!